我试图通过使用foreach()
的JSON字符串循环。然而,我一直得到以下错误:
"Notice: Trying to get property of non-object".
奇怪的部分是,当我复制和粘贴JSON字符串,然后运行foreach()
,它工作得很好。为了提供一些细节,我使用了Best-Buy API。
既然这似乎对这里的每个人都很好,是否有可能有最好的买给我的数据有问题?
请帮忙,我什么都试过了!
UPDATE抱歉没有发布代码。
$info = json_decode($test, true);
function tagGen($info){
foreach($info as $key => $value){
}
由于您没有发布代码,所以我们可以认为您有一个字符串jason编码。json编码字符串是一种javascript形式。foreach是一个php循环。所以如果你有一个json编码的字符串,你想在foreach循环中使用它,你必须使用json_decode函数。
当你将应用json_decode,你将有一个字符串从文档
以适当的PHP类型返回json编码的值。
值true、false和null(不区分大小写)分别返回true、false和null。
如果json不能被解码或者编码的数据深度超过递归限制,则返回NULL。
用于一些示例代码。
$str=json_decode($yourjson);
foreach($str as $key=>$value)
{}
您可能没有在JSON字符串上使用json_decode。看看我是怎么做的:
$json = "somejsonstring";
$json_array = json_decode($json, true);
foreach($json_array as $element) {
echo $element['some key'];
}
注意给json_decode方法的第二个参数"true"。它返回一个关联数组,而不是一个标准PHP对象。使它在foreach循环中更容易使用。
希望这对你有帮助,尽管你的问题应该包括一个代码示例。
打印你的json字符串的地方,你可以复制它,然后检查它是否有效使用这个工具:http://jsonformatter.curiousconcept.com/