- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试对表进行查询,在该表中我想选择一些列和其他一些列作为嵌套 json 对象,例如,我想选择用户列表及其地址作为嵌套对象。
SELECT
u.first_name, u.last_name, u.age, u.phone,
JSON_OBJECT(
'zip', a.zip,
'address', a.address,
'number', a.number,
'city', a.city,
'state', a.state
) as 'address'
FROM
tb_user u,
tb_user_address a
WHERE u.id_address = a.id
预期的结果是这样的:
[
{
first_name: 'my name',
last_name: 'my last name',
... // Some other fields
address: {
zip: '987',
address: 'street name',
... // Some other fields
}
},
{
// Another user
}
]
但是当它返回时,address
字段只是一个普通字符串,如下所示:address: "{'zip': '987', 'address': 'street name' , 'city': 'cityname', 'state'...};"
并且只有这个字段(使用 JSON_OBJECT
的字段)像这样返回,其他都可以。
当我从sql查询返回结果时,我这样做:
$user_list = json_decode(json_encode($query_result), true);
但这也不能解决问题。有没有办法将该字符串转换为有效的 json 对象?
最佳答案
您正在 MySQL 中创建地址 JSON 对象,因此它会作为字符串返回,其中包含其他列中的 JSON 格式数据。
在对整个结果进行 JSON 编码之前,您可以执行以下操作将其转换为 PHP 数组:
$user_list = array_map(
function ($v) { return json_decode($v['address'], true); },
$query_result
);
$user_list = json_encode($user_list);
关于php - mysql json_object 结果上的 json_decode 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49617367/
是否可以有条件地构建一个 json 对象,例如: mysql> SELECT JSON_OBJECT( CASE WHEN some_condition THEN key,
当我从数据库中选择 JSON_OBJECT 时,它会给我意想不到的结果。 select JSON_OBJECT('test', BIN_TO_UUID('GÇ~pw–'Ú¦[¦£´Æ')); { "t
我在选择查询中使用 JSON_OBJECT 和 JSON_ARRAY 函数创建了一个 JSON 结构。我遇到的问题是在格式化的 JSON 结果中返回日期时间列的格式。 例如我有一张表titles id
我有以下代码 #include #include #include #include #include int main(int argc, char **argv) { jso
我正在使用 json_object,其中对于不同的产品类别,我们有不同的颜色变量用于前 - kdt_color、fcy_color 等(查看下方) 如何为每个产品选择合适的 color_variabl
我有这个查询 SELECT json_object('image_name', image_name, 'iid', iid) FROM `posts_images` WHERE `pid` = '6
我尝试构建一个返回 json 的函数。 我将 mysql Workbench 更新到 8.0.14 并尝试了以下代码: SELECT JSON_OBJECT( 'name_field', nam
我有以下 sql 查询,使用 GROUP_CONCAT 可以正常工作: SELECT orders.created_at,products.title, o_p.qty AS qty, (SE
我在 Using Dart with JSON Web Services 中使用 json_object 代码在 Dartium 中运行良好。使用 dart_to_js_script_rewriter
如何获取 3 列的 JSON_OBJECT(),其一些已经包含 JSON 格式字符串。 这是我的例子,info 字段包含一个 json 字符串,所以所有这个对象都被转义了: SELECT T1
我正在尝试从 mySQL 表中导出 json 数据,其中该行成为字典中的条目。我已经能够使用下面的代码为每一行创建条目。 SELECT JSON_OBJECT(p.link, JSON_OBJECT(
我试图使用以下查询向 MySQL 表插入一个条目。如果我将 MySQL 参数化查询与 mysqli 一起使用,如下所示,它可以正常工作,没有任何问题。 insert into notelist(che
我正在从 ColdFusion 9.0.1 中的 MySQL 5.7 查询中取回一个 JSON 字符串。这是我的查询: SELECT ( SELECT GROUP_CONCAT(
我编写了一个查询,从表中获取帖子并返回有关每个帖子作者的信息: SELECT post.id, post.text, post.datetime, JSON_OBJECT(
我试图让 Oracle 在 SQL NULL 数据上生成 JSON null 值,如下所示: select json_object(key 'a' value 1, key 'b' value n
我试图让 Oracle 在 SQL NULL 数据上生成 JSON null 值,如下所示: select json_object(key 'a' value 1, key 'b' value n
我正在尝试从 MySQL 获取 JSON 格式的结果集。据我所知,MySQL 是有能力的 returning整个结果集为: JSON_OBJECT JSON_ARRAY 通常以哪种格式返回结果集——作
我正在使用 jsob_build_object 函数从我的表中的数据生成 json。 select json_build_object('name', p.name, 'birthday', p.bi
我正在尝试对表进行查询,在该表中我想选择一些列和其他一些列作为嵌套 json 对象,例如,我想选择用户列表及其地址作为嵌套对象。 SELECT u.first_name, u.last_nam
我有 MariaDB 10.2 和这个 SQL: SELECT products.*, CONCAT('[', GROUP_CONCAT(JSON_OBJECT( 'id', V.id,
我是一名优秀的程序员,十分优秀!