SQL to JSON - SQL 2016 中的对象数组到值数组

SQL 2016 有一项新功能,可将 SQL 服务器上的数据转换为 JSON。我很难将对象数组组合成值数组,即

示例 -

CREATE TABLE #temp (item_id VARCHAR(256))

INSERT INTO #temp VALUES ('1234'),('5678'),('7890')

SELECT * FROM #temp

--convert to JSON

SELECT (SELECT item_id 
FROM #temp
FOR JSON PATH,root('ids')) 

结果 -

{
    "ids": [{
        "item_id": "1234"
    },
    {
        "item_id": "5678"
    },
    {
        "item_id": "7890"
    }]
}

但我希望结果为 -

"ids": [
        "1234",
        "5678",
        "7890"
    ]

有人可以帮帮我吗?

最佳答案

谢谢!我们发现的灵魂是先转换成 XML -

SELECT  
JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + item_id + '"' 
FROM #temp FOR XML PATH('')),1,1,'') + ']' ) ids  
FOR JSON PATH , WITHOUT_ARRAY_WRAPPER 

https://stackoverflow.com/questions/37708638/

相关文章:

json - 我可以使用哪些程序来可视化 JSON 文件?

json - 如何解析/反序列化动态 JSON

json - 使用新参数 ExtJs Ext.data.JsonStore 重新加载 json 存储

json - 谷歌金融 json 股票报价停止工作

json - 如何找出实际安装了哪个版本的 bower 包?

json - 如何在自定义 JsonConverter 中使用默认序列化

c++ - 使用 boost 属性树读取 int 数组

json - 如何将有向无环图 (DAG) 存储为 JSON?

java - 如何使用 gson 调用默认反序列化

java - 使用 JAX-RS 将 JSON 查询参数转换为对象