【问题标题】:json_encode creates double quotes for nested JSONjson_encode 为嵌套的 JSON 创建双引号
【发布时间】:2013-07-03 00:34:13
【问题描述】:

我有以下使用 echo json_encode(array); 输出的数组

Array (
  [0] => Array (
  [id] => 85
  [name] => yeyery
  [area_xy] => {"type": "rectangle","coordinates": {"point1":"22.272219163607744:114.13580417633057","point2":"22.275753627993897:114.1413402557373","point3":"22.27297371968214:114.14400100708008","point4":"22.270868895211578:114.13910865783691"}}
  )
)

这是我得到的输出:

[
   {
      "id":"85",
      "name":"yeyery",
      "area_xy":"{\"type\": \"rectangle\",\"coordinates\": {\"point1\":\"22.272219163607744:114.13580417633057\",\"point2\":\"22.275753627993897:114.1413402557373\",\"point3\":\"22.27297371968214:114.14400100708008\",\"point4\":\"22.270868895211578:114.13910865783691\"}}",
   }
]

但预期的输出是这样的:

[
   {
      "id":"85",
      "name":"yeyery",
      "area_xy":{"type": "rectangle","coordinates": {"point1":"22.272219163607744:114.13580417633057","point2":"22.275753627993897:114.1413402557373","point3":"22.27297371968214:114.14400100708008","point4":"22.270868895211578:114.13910865783691"}},
   }
]

"area_xy" 之后,我不想用双引号包裹我的嵌套 JSON。

【问题讨论】:

  • 那么先停止对子数组应用json_encode()?

标签: php jquery json multidimensional-array nested


【解决方案1】:

初始输出具有误导性;你应该使用var_export,你会看到area_xy的值已经是一个字符串:

array (
  0 => 
  array (
    'id' => 85,
    'name' => 'yeyery',
    'area_xy' => '{"type": "rectangle","coordinates": {"point1":"22.272219163607744:114.13580417633057","point2":"22.275753627993897:114.1413402557373","point3":"22.27297371968214:114.14400100708008","point4":"22.270868895211578:114.13910865783691"}}',
  ),
)

为了纠正这一点,先decode它,然后编码整个shebang:

$arr[0]['area_xy'] = json_decode($arr[0]['area_xy']);
echo json_encode($arr, JSON_PRETTY_PRINT);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 2019-02-15
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多