json_encode(json_encode(array))

时间:2018-07-22 18:42:01

标签: php json jqplot

我正在尝试创建一个PHP脚本来为jqplot气泡图生成JSON数据。 jqplot sample code要求格式为

的数据
var arr = [ 
  [45, 92, 1067, {label:"Alfa Romeo", color:'skyblue'}], 
  etc.
];

我的脚本很像

while ...
  array_push(
    $arrBubble, 
    array(
      11, 
      123, 
      1236,
      json_encode(
        array('label' => $car, 'color' => 'skyblue')
      )
  );
} 
echo json_encode($arrBubble);

问题在于结果是

[ [11, 123, 1236, "{\"label\":"VW", \"color\":\"skyblue\"}"] ]

双重json_encode已将object(?)编码为文字字符串。

解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

没有理由为数组内的值之一明确拥有一个json_encode。使用json_encode时,它将按您期望的那样转换数组的每个级别。

var_dump(json_encode([
  11, 
  123, 
  1236,
  ['label' => $car, 'color' => 'skyblue']
]));

输出所需的结构:

string(48) "[11,123,1236,{"label":"VW","color":"skyblue"}]"