没有方括号json数组
尝试访问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
数组,而另两个数组转换为对象{}
。但是文档已经这样做了:
在对数组进行编码时,如果键不是从0开始的连续数字序列,则所有键都将编码为字符串,并为每个键值对显式指定。
以上是 没有方括号json数组 的全部内容, 来源链接: utcz.com/qa/422950.html