我想获得“记录”的价值
何时尝试此代码:
$json = file_get_contents('URL');
var_dump($json);
结果如下:
string(25289) "{ "ProductsSummary": { "Records": 10, "TotalRecords": 2874, "TotalPages": 288, "CurrentPage": 1 }, "Products": [ { "...
当我尝试这段代码时
$json = file_get_contents('URL');
$obj = json_decode($json);
echo $obj;
echo $obj->{'ProductsSummary'}->{'Records'};
echo $obj->ProductsSummary->Records;
echo $obj[0]->ProductsSummary->Records;
echo $obj->ProductsSummary[0]->Records;
echo $obj->ProductsSummary[1];
输出是:
{ "ProductsSummary": { "Records": 10, "TotalRecords": 2879, "TotalPages": 288, "CurrentPage": 1 }, "Products": [ { "Last.... }
Notice: Trying to get property of non-object in ...
Notice: Trying to get property of non-object in ...
Notice: Trying to get property of non-object in ...
答案 0 :(得分:1)
由于您没有有效的JSON,我非常确定json_decode()
只是失败了。 As per the manual:
以适当的PHP类型返回json中编码的值。值 true,false和null返回为TRUE,FALSE和NULL 分别。如果json无法解码,或者如果是,则返回
NULL
编码数据比递归限制更深。
您可以通过以下方式验证: is_null()函数:
$obj = json_decode($json);
if( is_null($obj) ){
// Invalid JSON, don't need to keep on working on it
}else{
// Read data
}
如果一切正常,$obj
将是一个对象,因此向echo
提供它永远不会产生任何有用的东西:
echo $obj;
您可能希望改为使用var_dump()。
答案 1 :(得分:0)
$ json是一个字符串。您应该首先使用json_decode($ json)
对其进行解码