当尝试访问 API 时,必须像这样解析 JSON 数组
{"item":[{"id":"123456", "name":"adam"}]}
但是当我执行以下代码时
$data = array("item" => array("id" => "123456", "name" => "adam"));
echo json_encode($data);
它返回不带方括号的 json 数组,如下所示
{"item":{"id":"123456","name":"adam"}}
我花了几个小时试图弄清楚如何解决这个问题,但想不出解决方案
你需要把东西包裹在另一个里面array
:
$data = array("item" => array(array("id" => "123456", "name" => "adam")));
如果我们使用等效的 PHP 5.4 数组语法,这会更容易理解:
$data = [ "item" => [ ["id" => "123456", "name" => "adam"] ] ];
将此与 JSON 进行比较:
{ "item": [ {"id":"123456", "name":"adam" } ] }
唯一需要解释的是为什么 PHP 数组之一仍然是数组[]
JSON 格式,而另外两个则转换为对象{}
。但是文档 http://php.net/manual/en/function.json-encode.php已经这样做了:
编码数组时,如果键不是连续数字
从 0 开始的序列,所有键都编码为字符串,并且
为每个键值对明确指定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)