用PHP解析奇怪的JSON数据

时间:2017-06-04 22:55:30

标签: php json parsing

我的示例json数据如下,我试图解析它,但我无法使用$ response [0]或$ response [1]等获取数据...我该如何解析它?

谢谢!

[
  {
    "Tags": [
      "diyarbakır",
      "bağlar",
      "patlama"
    ]
  },
  {
    "Tags": [
      "gazetehaberleri",
      "galatasaray lisesi",
      "kadri gürsel"
    ]
  }
]

更新

$response = json_decode($response);

foreach($response as $key => $value){
   echo $value;
}

警告:为foreach()提供的参数无效

2 个答案:

答案 0 :(得分:2)

$response = json_decode($response, true);

默认情况下,第二个参数为false。通过使用true,它将它强制为关联数组。

http://php.net/json_decode

答案 1 :(得分:1)

正如Varuog暗示的那样,你无法正确访问元素的原因是因为你似乎混淆了json_decode()的结果。默认情况下,它将JSON对象转换为PHP对象。

您仍然可以使用$response[0]$response[1]获取数据,但是从那里访​​问数据的方式也不同。

对于您当前的实现,要访问“Tags”元素,您必须执行以下操作:

$response = json_decode($response);

foreach($response as $key => $value){
   print_r($value->{'Tags'});
}

给出了输出:

Array
(
    [0] => diyarbakır
    [1] => bağlar
    [2] => patlama
)

如果您将json_decode()的第二个参数设置为true,它会将对象转换为数组,您可以通过$value['Tags']访问它:

$response = json_decode($response, true);

foreach($response as $key => $value){
   print_r($value['Tags']);
}