如何用PHP读取嵌套的JSON字符串
我在使用PHP读取JSON文件时遇到问题。我试过几种方法,但似乎我无法真正读取数据。实现这一目标的最佳方式是什么?我在下面提供了我的JSON数据示例:如何用PHP读取嵌套的JSON字符串,php,json,Php,Json,我在使用PHP读取JSON文件时遇到问题。我试过几种方法,但似乎我无法真正读取数据。实现这一目标的最佳方式是什么?我在下面提供了我的JSON数据示例: { "UNIQUE ID":{ "data":"123", "more_data":"456" }, "UNIQUE ID":{ "data":"789", "more_data":"123" } } 我当前的PHP文件如下所示: <?php
{
"UNIQUE ID":{
"data":"123",
"more_data":"456"
},
"UNIQUE ID":{
"data":"789",
"more_data":"123"
}
}
我当前的PHP文件如下所示:
<?php
$json = file_get_contents("./data/example.json");
$data = json_decode($json, true);
foreach($data as $single) {
echo $single['UNIQUE ID'][0]['data'];
}
?>
我没有收到任何错误,只是没有显示任何数据。
var\u dump($data)
确实显示它正确加载了JSON。在这样的哈希数组上迭代非常容易:
$json = file_get_contents('./data/example.json');
$data = json_decode($json, true);
foreach ($data as $uniqueId => $array) {
$data = $array['data'];
$more_data = $array['more_data'];
// go bananas here
}
您试图访问数据,就好像您没有使用foreach在数组上迭代一样 工作示例:
$single['UNIQUE ID']['data']代码>使用变量转储($data)代码>,这样您就可以看到您在这里处理的数据结构实际上是什么。。。不知道额外的[0]是从哪里来的。这个JSON不会很好地工作,因为里面的两个对象都由同一个键引用,所以第二个将覆盖第一个。实际上,最终得到的数组只包含一个元素循环内部的代码>可能会有所帮助。使用$single['data']
@sk11z00,因为$single
已经是$data['UNIQUE ID']
,所以不能再次访问'UNIQUE ID'
键。
<?php
foreach($data as $uniqueID => $single) {
echo $single['data'];
}