处理 PHP 代码和 JSON 中的引号


Dealing with quotation marks in PHP code and JSON

我在PHP中构建了一个复杂的JSON数组结果,方法是在数据库中执行多个查询,然后将数据推送到数组中,最后使用JSON_NUMERIC_CHECK对其进行json_encode。我把所有的数字数组都弄干净了,没有引号。问题是名称/值对的集合

"{y: 39,ratio: 150}",...,"{y: 40,ratio: 364}" 

具有外部引号,这在高图表中是不可接受的。以下是 PHP 代码的片段:

$series = array();
$series['name'] = 'Trend';
while($row = mysql_fetch_array($result)){
$series['data'][] = 'y: ' . $row['A'] . ',ratio: ' . round($row['A'] / $row['B'] * 100, 0) . '}';
}
$result = array();
array_push($result,$series);
print json_encode($result, JSON_NUMERIC_CHECK);
array_push($result,$category);

如何摆脱引号并查看以下内容:

{y: 39,ratio: 150},...,{y: 40,ratio: 364}

删除此行:

$series['data'][] = 'y: ' . $row['A'] . ',ratio: ' . round($row['A'] / $row['B'] * 100, 0) . '}';

将上面的代码替换为以下内容:

$series['data'][] = array("y" => $row['A'],
    "ratio" => round($row['A'] / $row['B'] * 100, 0));

你的意思是这样的吗

while($row = mysql_fetch_array($result)) {
   $series['data'][] = (object)array(
     'y' => $row['A'],
     'ratio' => round($row['A'] / $row['B'] * 100, 0)
   );
 }

然后,您可以

print json_encode($series);