处理谜题:使用 json_decode() 创建数组
遇到错误“致命错误:无法使用 stdClass 类型的对象作为数组” ” 尝试将 JSON 解码为数组时表示一个常见的误解。 json_decode() 默认创建一个对象,但可以通过将第二个参数指定为 true 来获取数组。
重温代码:
下面提供的代码说明了有问题的方法:
$json_string = 'http://www.example.com/jsondata.json'; $jsondata = file_get_contents($json_string); $obj = json_decode($jsondata); print_r($obj['Result']);
解决方案:
要解决此问题,我们只需提供 true 作为 json_decode() 的第二个参数,指定我们对关联数组而不是对象的偏好。正确的代码是:
$result = json_decode($jsondata, true);
访问数组值:
一旦有了关联数组,就可以使用方括号访问其值:
print_r($result['Result']);
整数键数组:
但是,如果您更喜欢整数键而不是属性名称,则可以通过利用 array_values() 来实现此目的:
$result = array_values(json_decode($jsondata, true));
对象方法:
如果您希望维护对象结构,您仍然可以使用双箭头访问所需的属性运算符:
print_r($obj->Result);
以上是如何使用 json_decode() 正确地将 JSON 解码为数组?的详细内容。更多信息请关注PHP中文网其他相关文章!