MS SQL -试图使用FOR JSON输出每个值的方括号



我正在使用MSSQL尝试以特定格式获得JSON输出,在各个值周围使用方括号。以下是查询的一部分:

SELECT DISTINCT 
(SELECT Email_Address AS fieldValues
FROM table1
FOR JSON PATH) records
FROM table1
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER

结果如下:

{
"records": [
{
"fieldValues": "test@email.com"
}
]
}

我需要在电子邮件地址周围加上方括号,所以它看起来像这样:

{
"records": [
{
"fieldValues": [
"test@email.com"
]
}
]
}

有什么办法可以做到吗?

在SQL server中序列化JSON数组有点麻烦,需要在STRING_AGG()输出上使用JSON_QUERY(),例如:

select
(
select
json_query('['+(
select string_agg(quotename(Email_Address, '"'), ',')
from table1
)+']', '$') as [fieldValues]
for json path
) as [records]
for json path, without_array_wrapper;

最新更新