要从通过 http get 请求返回的 json 字符串中提取值,需要使用适当的函数对字符串进行解析。
问题
给定以下 json 字符串:
立即学习“PHP免费学习笔记(深入)”;
{ "headers": { "content-type": ["application/json;charset=utf-8"], "content-length": ["110"] }, "statuscode": 200 }
使用 php 中的 json_encode 函数对该字符串进行编码后,如何提取 statuscode 的值?
错误尝试
使用 json_encode 进行编码并试图获取值:
<?php $json = json_encode(// 此处插入返回的 json 字符串); echo $json['statuscode']; // 导致错误 ?>
这会导致 “500 错误:无法访问字符串类型的偏移” 的错误。
解决方案
要正确提取值,需要使用 json_decode 函数将字符串转换为 php 对象或数组:
<?php $json = json_decode(// 此处插入返回的 JSON 字符串); echo $json->statusCode; // 返回正确的值 ?>
json_decode 会将 json 字符串转换为一个对象,从而允许使用点号语法访问属性(例如 $json->statuscode)。