循环遍历JSON字符串


Looping through a JSON string

我试图通过使用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/