将解码的 Json 对象转换为数组,在访问它时生成错误
我解码了一个 json 字符串,然后将其转换为任何数组,并稍后尝试访问它。但它生成 Undefined Index
错误
这是我的示例代码
$json = '{"1":"Active","0":"Inactive"}'; //Yes, it is a valid Json String
$decodedObject = json_decode($json);
$array = (array)$decodedObject;
echo $array['1']; // This generates undefinded Index 1 Error
这是数组和对象的显示
stdClass Object
(
[1] => Active
[0] => Inactive
)
Array
(
[1] => Active
[0] => Inactive
)
I decoded a json string and then Type casted it into any Array and tried to access it later. But it generate Undefined Index
Error
Here is my sample code
$json = '{"1":"Active","0":"Inactive"}'; //Yes, it is a valid Json String
$decodedObject = json_decode($json);
$array = (array)$decodedObject;
echo $array['1']; // This generates undefinded Index 1 Error
Here is the display of the array and object
stdClass Object
(
[1] => Active
[0] => Inactive
)
Array
(
[1] => Active
[0] => Inactive
)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
1.) 与其分两步完成,不如这样做:
它会直接给你数组而不是对象
2.) 确保你的 json 代码是正确的:
3.) 你的
var_dump
显示那array{[1]=>....
那么为什么像$array['1']
这样引用它会更简单$array[ 1]
1.) instead of making it in two steps how about doing it like:
it will directly give you the array instead of object
2.) make sure your json code is corret:
3.) your
var_dump
shows thatarray{[1]=>....
so why refering it like$array['1']
can it be even simpler$array[1]
不,它不是有效的 JSON 字符串(JSONLint 是你的朋友)。您使用了逗号而不是冒号:
No, it is not a valid JSON string (JSONLint is your friend). You used a comma instead of a colon: