【发布时间】:2018-06-08 08:55:18
【问题描述】:
我不知道如何使用 PHP 和 MySQL 创建多级 JSON 输出。
我有这个查询(这个问题的简化)
$query = "SELECT
1 as id,
JSON_OBJECT('key1', 1, 'key2', 'abc') as json1";
我把它变成了一个数组
while ($row = mysqli_fetch_assoc($result)) {
$resultArray[] = $row;
}
return $resultArray;
然后使用json_encode:
echo json_encode($result);
这让我感动
[
{
id: "1",
json1: "{"key1": 1, "key2": "abc"}"
}
]
即,变量作为字符串返回。
我想要实现的是将变量 json_test 作为 JSON 的第二级,如下所示:
[
{
id: "1",
json1:
{
key1: 1,
key2: "abc"
}
}
]
我在这个网站上尝试了以下提示,但没有任何乐趣:
JSON_ARRAY(GROUP_CONCAT(JSON_OBJECT('key1', 1, 'key2', 'abc'))) AS json2
给我
json2: "["{\"key1\": 1, \"key2\": \"abc\"}"]",
和
CAST(CONCAT('[',GROUP_CONCAT(JSON_OBJECT('key1', 1, 'key2', 'abc')),']') AS JSON) AS json3
给我
json3: "[{"key1": 1, "key2": "abc"}]"
非常感谢任何提示。
我使用的是 PHP 7.0.25 和 MySQL 5.7.20。
【问题讨论】: