PHP提供了 json_decode() 函数来解码 JSON 字符串,将其转换为 PHP 数据结构。让我们深入研究如何访问结果:
对象属性访问:
对象属性可以通过 $object->property 的方式访问,例如:
$json = '{"type": "donut", "name": "Cake"}'; $yummy = json_decode($json); echo $yummy->type; // "donut"
数组元素访问:
数组元素可以通过 $array[0] 的方式访问,例如:
$json = '["Glazed", "Chocolate with Sprinkles", "Maple"]'; $toppings = json_decode($json); echo $toppings[1]; // "Chocolate with Sprinkles"
嵌套项目访问:
嵌套项目可以通过连续的属性和索引访问,例如 $object->array[0]->etc。:
$json = '{"type": "donut", "name": "Cake", "toppings": [{"id": "5002", "type": "Glazed"}]}'; $yummy = json_decode($json); echo $yummy->toppings[0]->id; // "5002"
转换为关联数组:
传递 true 作为 json_decode() 的第二个参数,可以将 JSON 对象解码为关联数组,其键为字符串:
$json = '{"type": "donut", "name": "Cake"}'; $yummy = json_decode($json, true); echo $yummy['type']; // "donut"
访问关联数组项目:
可以通过 foreach (array_expression as $key => $value) 遍历键和值:
$json = '{"foo": "foo value", "bar": "bar value", "baz": "baz value"}'; $assoc = json_decode($json, true); foreach ($assoc as $key => $value) { echo "The value of key '$key' is '$value'" . PHP_EOL; }
输出:
The value of key 'foo' is 'foo value' The value of key 'bar' is 'bar value' The value of key 'baz' is 'baz value'
未知数据结构:
如果不知道数据结构,请参考相关文档或使用 print_r() 检查结果:
print_r(json_decode($json));
json_decode() 返回 null:
当 JSON 为 null 或无效时,会出现这种情况。使用 json_last_error_msg() 检查错误消息。
特别字符属性名称:
使用 {"@attributes":{"answer":42}} 访问带有特殊字符的属性名称:
$json = '{"@attributes":{"answer":42}}'; $thing = json_decode($json); echo $thing->{'@attributes'}->answer; //42
以上是如何使用 PHP 访问 JSON 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!