如何使用带有JSON_解码和JSON_编码的PHP在数组中嵌套字典的值端
在客户端,为了遵守一大堆复杂的遗留代码,我需要JSON如下所示:如何使用带有JSON_解码和JSON_编码的PHP在数组中嵌套字典的值端,php,arrays,json,dictionary,Php,Arrays,Json,Dictionary,在客户端,为了遵守一大堆复杂的遗留代码,我需要JSON如下所示: A. {"book":[{"title":"War and Peace.","author":"Leo Tolstoy"}]} 其中,字典的“值”端是包含字典的数组,例如[{}] 但是,检索随机项目时,我的服务器代码输出以下内容: B. {"book":{"title":"War
A. {"book":[{"title":"War and Peace.","author":"Leo Tolstoy"}]}
其中,字典的“值”端是包含字典的数组,例如[{}]
但是,检索随机项目时,我的服务器代码输出以下内容:
B. {"book":{"title":"War and Peace","author":"Leo Tolstoy"}}
其中“value”端只是一个字典,例如{}
如何生成JSON,使其看起来像A而不是B
以下是服务器上当前正在发生的生成B的操作:
数据实际上存储在JSON中,如下所示:
$str = '[{"title":"War and Peace","author":"Leo Tolstoy"}]';
The code that outputs a random item is:
$array = json_decode($str, true);
$rand = $array[array_rand($array)];
echo json_encode(array('book'=>$rand));
如何将字典放在方括号内的值端,例如
[{}]
?只需将您的$rand
变量括在方括号内[]
。想知道这里的array\u rand()
的用途是什么吗?
<?php
$str = '[{"title":"War and Peace","author":"Leo Tolstoy"}]';
$array = json_decode($str, true);
$rand = $array[array_rand($array)];
echo json_encode(array('book'=>[$rand]));
?>
演示:字面意思是
['book'=>[$rand]]
。在数组周围再加一个数组。对于较旧版本的PHP,我认为您需要使用数组($rand),而不仅仅是添加括号。是的,[]
在PHP>=5.4中受支持,对于旧的遗留程序,您可以使用数组()而不是[]