没有方括号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

回到顶部