PHP中获取URL返回的JSON数组并以对象形式访问数据
解决PHP中JSON解码为对象数组的问题
嘿,这问题我熟!你现在遇到的情况是json_decode的第二个参数在“捣乱”——你传了true,它就会把JSON解码成关联数组,而不是你想要的对象实例,自然没法用->语法访问属性啦。
正确做法超简单:
去掉json_decode的第二个参数(或者显式传false,因为默认就是这个值),这样它就会返回stdClass对象的数组,完美匹配你的需求。
完整代码示例:
// 从URL获取JSON数据 $url = "你的目标URL地址"; $json_data = file_get_contents($url); // 解码为对象数组(不要加第二个true参数) $user_objects = json_decode($json_data); // 现在就能用你想要的方式访问数据了! echo $user_objects[1]->name; // 输出 "John" echo $user_objects[2]->sex; // 输出 "F" echo $user_objects[0]->age; // 输出 20
补充说明下参数区别:
json_decode的第二个参数是用来控制返回类型的:
- 当参数为
true时:返回关联数组,访问方式是$user_array[1]['name'] - 当参数为
false(或不传)时:返回对象数组,访问方式是$user_objects[1]->name
这样调整之后,你就能按照预期的方式操作数据啦!
内容的提问来源于stack exchange,提问作者D. Thomas
相关产品推荐
相关产品推荐

