首页 > 解决方案 > MariaDB 中 JSON_OBJECT 中的 JSON 数组处理

问题描述

我是 mariadb 10.2 的新手,并尝试使用以下查询创建一个 json 对象

SELECT 'VisaType', JSON_OBJECT('VisaTypes', CONCAT('[',(GROUP_CONCAT(JSON_OBJECT('VisaTypeId', a.visatypeid, 
                                'Name', a.resourcevalue))),']'))
        FROM cte a

我得到的结果是

{"VisaTypes": "[{\"VisaTypeId\": \"40eb54e3-22db-e711-8228-0a1a4261e962\", \"Name\": \"Maritime/Aviation Crew\"},{\"VisaTypeId\": \"c2eb54e3-22db-e711-8229-0a1a4261e962\", \"Name\": \"Maritime/Aviation Crew\"},{\"VisaTypeId\": \"886d8088-ff30-e811-92cd-0a1a4261e962\", \"Name\": \"Visa Vietnam\"}]"}

根据 JSON_VALID,这是无效的。但是,当我删除值 ("[ --> [) 的双引号时,它会显示一个有效的 JSON。

{"VisaTypes": [{\"VisaTypeId\": \"40eb54e3-22db-e711-8228-0a1a4261e962\", \"Name\": \"Maritime/Aviation Crew\"},{\"VisaTypeId\": \"c2eb54e3-22db-e711-8229-0a1a4261e962\", \"Name\": \"Maritime/Aviation Crew\"},{\"VisaTypeId\": \"886d8088-ff30-e811-92cd-0a1a4261e962\", \"Name\": \"Visa Vietnam\"}]}

如何直接从我的查询中获取有效的 JSON?任何帮助将不胜感激。

标签: sqljsonmariadb

解决方案


推荐阅读