我们有json:
{ "list":
[
{"id":"4045","value":"Xin Kai"},
{"id":"4141","value":"YZK"},
{"id":"4099","value":"ZX"}
]
}
对于获取值,我们使用下一个代码:
$json = json_decode($result, true);
foreach($json['list'] as $item) {
print $item['value'].'<br />';
}
但现在我们收到错误:Warning: Invalid argument supplied for foreach()...
请告诉我代码中的错误以及如何正确?
答案 0 :(得分:1)
您的问题是您在代码中执行此操作:
foreach($json->list as $item) {
当你应该这样做时:
foreach($json['list'] as $item) {
当您将其解释为array
且不为object
时。
阅读更多:json_decode()
另外,正如zerkms所说,
答案 1 :(得分:0)
在json_decode
之前你需要在utf-8
中获取json,在你的例子中(如果你在windows-1251中获得json),你需要使用下一个代码:
//if you want get array
$json_obj = json_decode(iconv("windows-1251","utf-8",$result), true);
foreach($json_obj['list'] as $item) {
print $item['value'].'<br />';
}
//if you wnt get object
$json_obj = json_decode(iconv("windows-1251","utf-8",$result));
foreach($json_obj->list as $item) {
print $item->value.'<br />';
}