我正在尝试使用php解码JSON文件内容。
"notification": {/* code related to notification */ },
"HOME_SCREEN":
{
"Phone":
{
"position": 1 ,
"list":
[
{
"position": 1,
"productID": "105"
}
]
},
},
"notify": { /* code related to notify */},
我关注了here&链接here&尝试如下。但它给了空白页....
$string = file_get_contents("test.json");
$json_a = json_decode($string, true);
foreach ($json_a as $Phone => $person_a)
{
echo isset($person_a['position']);
}
也试过:
$json_string = file_get_contents("test.json");
$decoded = json_decode($json_string);
$comments = $decoded->data[0]->comments->data;
foreach($comments as $comment){
$position = $comment->position;
echo $comment['position'];
}
及以下:
$url = 'http://url.com/test.json';
$content = file_get_contents($url);
$json = json_decode($content, true);
foreach($json as $i){
echo $i['position'];
}
修改
在线检查Json file,其有效 json,在更好的视图中查看相同的json文件:https://pastebin.com/mUEpqfaM
答案 0 :(得分:1)
对于JSON文件的解码,您无法做/应该做什么。
正如php documentation for json_decode中所写,您正在使用$assoc = true
,因此您将整个JSON文件转换为关联数组。如果要将JSON文件解码为 OBJECT 或 ASSOCIATIVE ARRAY ,则由您决定。直到这一点,你说得对。
为了您的理解,主要区别在于:
$json['notification']
$json->notification
我更喜欢 ARRAY ,因为我更容易导航并使用foreach
循环。如评论中所述,您应该检查已解码文件的结构,以便了解如何访问您感兴趣的值。
这样做的最小代码是
$string = file_get_contents("test.json");
$json = json_decode($string, true);
echo "<pre>";
print_r($json);
echo "</pre>";
假设您要访问 $ json 数组中 HOME_SCREEN / Phone&gt;的位置列表,为此,您需要使用此foreach
循环:
foreach ($json['HOME_SCREEN']['Phone']['list'] as $item) {
echo $item['position'];
}