我开始研究如何在 MSSQL 2016+ 中处理 JSON
我只是创建了一个具有 ID (int) 和 JSON (nvarchar) 列的表。
以下是我的查询以显示该问题:
第一个查询仅返回关系表结果,很好并且符合预期。
SELECT * FROM WS_Test
-- Results:
1 { "name": "thomas" }
2 { "name": "peter" }
Run Code Online (Sandbox Code Playgroud)
第二个查询仅返回 json 列,因为“JSON”创建了我的 MSSQL。
不太好,因为它将 json 列内容输出为字符串,而不是解析后的 JSON。
SELECT json FROM WS_Test FOR JSON PATH
-- Results:
[{"json":"{ \"name\": \"thomas\" }"},{"json":"{ \"name\": \"peter\" }"}]
Run Code Online (Sandbox Code Playgroud)
第三个查询给了我两个结果行,其中 json 列内容为解析的 JSON,很好。
SELECT JSON_QUERY(json, '$') as json FROM WS_Test
-- Results:
{ "name": "thomas" }
{ "name": "peter" }
Run Code Online (Sandbox Code Playgroud)
第四个查询为我提供了 json 列内容作为一个(!)JSON 对象,完美解析。
SELECT …Run Code Online (Sandbox Code Playgroud)