如何访问json sessionInfo和json数组的长度。这是我的JSON数组:
{
"data": [
{
"sessionInfo": {
"sessionUserId": 1,
"startTime": "1418106218946",
"endTime": "1418106218946"
},
"observations": [
{
"obLocation": "location1",
"obHcwType": "hcwtype1",
"obMoment": "moment1",
"obItem": "item1"
}
]
},
{
"sessionInfo": {
"sessionUserId": 2,
"startTime": "1418106218946",
"endTime": "1418106218946"
},
"observations": [
{
"obLocation": "location2",
"obHcwType": "hcwtype2",
"obMoment": "moment2",
"obItem": "item2"
}
]
}
]
}
我正在接收这样的JSON:
$json = file_get_contents('php://input');
$arr = json_decode($json, true);
我的计数功能是
echo count($arr['data']);
但是我得到输出1,它应该是2,因为这个数组有两个元素。我还检查了JSON编辑器,其中JSON格式是正确的。
答案 0 :(得分:0)
您是否尝试过其他网址/文件?我精确地编写了你的代码并且它可以100%工作。
确保php://input
正确无误。尝试将JSON存储在外部文件中,并尝试链接到该文件。
修改强>
试试这个:
$json = file_get_contents('something.json');
$arr = json_decode($json, true);
$count = 0;
for($i = 0; $i < count($arr['data']); $i++) {
$count++;
}
echo $count;
在那里你可以看到确切的代码和输出。如您所见,正在输出相同的JSON,然后是其下的计数。
如果你仍然没有做对,那么你正在使用不同的JSON源,或者你有一些东西覆盖PHP中的变量