这是我的 php 代码,带有 json 格式的字符串:
<?php
$string='{"items": [
{
"address":"W 7th Ave"
},
{
"address":"W 8th St"
}
]}';
$json = json_decode($string, true);
foreach ($json as $key => $value){
echo "$key: $value\n";
};
?>
我想学习如何将 json 字符串解析/输出为可以在 html 中显示或放入数据库的内容。但是我陷入了一些可能非常简单的问题,但我花了早上的大部分时间试图弄清楚出来。
我想了解的是为什么上面的代码结果给出了以下结果:
“项目:数组”
这不是我想要/期望得到的:
"items: W 7th Ave"
"items: W 8th St"
我错过了什么? “地址”不是数组中“项目”下方的下一个“级别”吗?
最佳答案
$string = file_get_contents('./string.json');
$json = json_decode($string);
如果你想拥有items: <address>
:
foreach ($json['items'] as $address)
{
echo "items:". $address['address'] ."\n";
};
无论如何,如果您不确定数组是如何构建的,您可以通过以下方式打印它:
print_r($json);
将打印:
Array
(
[items] => Array
(
[0] => Array
(
[address] => W 7th Ave
)
[1] => Array
(
[address] => W 8th St
)
)
)
现在你发现$json
仅包含两个数组的数组( items
),然后,如果循环它,您将得到示例中打印的数组。
如上所述,您需要通过循环 items
中的元素来更深入地进行一步。数组并打印它们的 address
元素。
这是完整的脚本:http://pastie.org/2275879
关于php json_decode如何输出数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6833737/