json_encode( json_encode (数组) )

json_encode( json_encode (array) )

我正在尝试创建一个 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\"}"] ]

double json_encode 已将对象 (?) 编码为文字字符串。

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

没有理由为数组中的其中一个值显式设置 json_encode。当您使用 json_encode 时,它会按照您的预期转换数组的每一层。

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

输出你想要的结构:

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