DECLARE @JsonInfo NVARCHAR()
SET @JsonInfo=N'
{
"CalcPayInput":{
"ServiceCode":"",
"Items":[
{
"Length":,
"Width":,
"High":
}
]
},
"BusinessBody":{
"WaybillNumber":"SZY222019082001135"
}
}
'
SELECT Len(@JsonInfo)
/*实际存储建议使用这种,压缩一行保存*/
SET @JsonInfo=N'{"CalcPayInput":{"ServiceCode":"2131296","Items":[{"Length":10,"Width":50,"High":80}]},"BusinessBody":{"WaybillNumber":"SZY222019082001135"}}'
SELECT Len(@JsonInfo)
注意:SQL SERVER 版本以后的支持(旧版本需要升级) 解析Json之前验证一下是否是Json语句select ISJSON(@JsonInfo) 如果字符串包含有效 JSON,则返回 ;否则,返回 。 如果 expression 为 NULL,则返回 NULL。
SELECT JSON_VALUE(@JsonInfo,'$.CalcPayInput.ServiceCode')ServiceCode
注意:层级关系,Items是集合,获取集合的第一项,[],索引从0开始
SELECT JSON_VALUE(@JsonInfo,'$.CalcPayInput.Items[0].Length') Length
注意:Json串第一层存在多个子对象
SELECT JSON_VALUE(@JsonInfo,'$.BusinessBody.WaybillNumber') WaybillNumber
注意:Json串第一层存在多个子对象
SELECT JSON_MODIFY(@JsonInfo, '$.BusinessBody.WaybillNumber','YZY222019082001135') JsonInfo
注意:将不需要的字段定位到,利用JSON_MODIFY函数置为NULL
SELECT JSON_MODIFY(@JsonInfo, '$.BusinessBody.WaybillNumber',null) JsonInfo
注意:将不需要的字段定位到,利用JSON_MODIFY函数添加
SELECT JSON_MODIFY(@JsonInfo, '$.BusinessBody.ProductCode','') JsonInfo
https://docs.microsoft.com/zh-cn/sql/t-sql/functions/isjson-transact-sql?view=sql-server-2017
https://docs.microsoft.com/zh-cn/sql/t-sql/functions/json-value-transact-sql?view=sql-server-2017
https://docs.microsoft.com/zh-cn/sql/t-sql/functions/json-query-transact-sql?view=sql-server-2017
https://docs.microsoft.com/zh-cn/sql/t-sql/functions/json-modify-transact-sql?view=sql-server-2017
微信: 查看我的相册
简书:https://www.jianshu.com/u/dbfbe12c187d
欢迎大家加我,咨询问题,尽我的能力解决,我知道的问题。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章