sql-server - 如何使用 JSON_VALUE 查询 JSON
问题描述
JSON输入:
[
{
"InputType":"Date",
"InputName":"Main_Expiry_Date",
"InputValue":"30 June 2020"
},
{
"InputType":"Select",
"InputName":"Internet_Service_Providers",
"InputValue":"NTC"
},
{
"InputType":"Select",
"InputName":"Link_Desc",
"InputValue":"Primary"
},
{
"InputType":"TextBox",
"InputName":"Remarks",
"InputValue":""
}
]
解决方案
如果你真的想用 解析这个 JSON 数组JSON_VALUE()
,你应该使用下面的语句:
JSON:
DECLARE @json nvarchar(max) =
N'[
{"InputType":"Date", "InputName":"Main_Expiry_Date", "InputValue":"30 June 2020"},
{"InputType":"Select", "InputName":"Internet_Service_Providers", "InputValue":"NTC"},
{"InputType":"Select", "InputName":"Link_Desc", "InputValue":"Primary"},
{"InputType":"TextBox", "InputName":"Remarks", "InputValue":""}
]'
陈述:
SELECT
JSON_VALUE([value], '$.InputType') AS InputType,
JSON_VALUE([value], '$.InputName') AS InputName,
JSON_VALUE([value], '$.InputValue') AS InputValue
FROM OPENJSON(@json)
结果:
InputType InputName InputValue
Date Main_Expiry_Date 30 June 2020
Select Internet_Service_Providers NTC
Select Link_Desc Primary
TextBox Remarks
请注意,您可以使用OPENJSON()
显式模式解析输入 JSON,而不使用JSON_VALUE()
:
SELECT InputType, InputName, InputValue
FROM OPENJSON(@json) WITH (
InputType varchar(50) '$.InputType',
InputName varchar(50) '$.InputName',
InputValue varchar(50) '$.InputValue'
)
推荐阅读
- c# - 哪个 .net 版本用于 Windows 7 及更高版本?
- python - 熊猫 - 行之间的比率
- python - 带有选项的 Django-pgcrypto EncryptedCharField 破坏了 Django 管理视图中的选择框
- php - 从 jQuery 代码中的 Wordpress 短代码中获取 URL
- excel - 使用 Excel 宏复制瀑布图时出错
- reactjs - Reactjs 未处理的拒绝(TypeError):无法使用 spotify api 读取未定义的属性“地图”
- python - 如果 zeep 中为空,如何删除强制 wsdl 字段
- javascript - 怎么修; “if-else”语句跳过“if”部分,直接进入“else if”部分?
- asp.net-mvc - 没有“IEnumerable”类型的 ViewData 项
' 具有键 'DiseaseType' - express-gateway - Express Gateway:没有得到响应正文