如何使用 PHP 的 JSON_decode 和 JSON_encode 将字典的值侧嵌套在数组中

在客户端,为了遵守一大堆复杂的遗留代码,我需要 JSON 如下所示:


A. {"book":[{"title":"War and Peace.","author":"Leo Tolstoy"}]}

其中字典的“值”侧是包含字典的数组,例如[{}]。


但是,当检索随机项目时,我的服务器代码输出以下内容:


B. {"book":{"title":"War and Peace","author":"Leo Tolstoy"}}

其中“值”侧只是一个字典,例如{}。


如何生成 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));

如何将字典放在方括号内的值侧,例如[{}]?


犯罪嫌疑人X
浏览 100回答 1
1回答

偶然的你

只需将$rand变量包装在括号内即可[]。很想知道这里的目的是什么array_rand()?<?php&nbsp;$str = '[{"title":"War and Peace","author":"Leo Tolstoy"}]';$array = json_decode($str, true);&nbsp;$rand = $array[array_rand($array)];echo json_encode(array('book'=>[$rand]));?>演示: https: //3v4l.org/dZJRn
打开App,查看更多内容
随时随地看视频慕课网APP