【SQL Server CLR】 TJson实战

 

TJson 数据库json类型

构造方法:

declare @TJson TJson='';  --空对象
declare @TJson TJson='{"name":"tjson"}' --默认值构建

属性及方法

类型

说明/调用示例

SetValue

function

@TJson.SetValue('auth','ted')

SetJson

function

declare @TJson2 TJson='["篮球","足球","台球"]'

@TJson.SetValue('favorites',@TJson2)

@TJson.SetValue('favorites.1','泡妞') --设置favorites下标为1的值为【泡妞】

ToString

function

@TJson.ToString()  ---获取完整json值

Find

function

@TJson.Find('name') ---获取name属性值

@TJson.Find('favorites.1') --获取favorites下标为1的值

Find2

function

@TJson.Find2('name2','暂无数据') ---获取name2属性值,未找到则返回【暂无数据】

代码演示:

----------声明--------------------------
declare @TJson TJson='{"name":"tjson","auth":"ted","qq":"12345"}';
----------设置值-----------------------
set @TJson=@TJson.SetValue('weixin','mr_ted90');  ---新增weixin属性
set @TJson=@TJson.SetValue('qq','903991034');  --修改已有键值
set @TJson=@TJson.SetValue('create_date',getdate()); --日期格式
declare @OtherJson TJson='{"like":"18-year-old girl","favorite":["篮球","足球","台球"],"friends":[{"id":1,"name":"周星驰"},{"id":2,"name":"范冰冰"}]}';
set @TJson=@TJson.SetJson('others',@OtherJson); ---新增TJson类型
----------查询值------------------------
select @TJson.ToString()  ----完整json值
结果:{"name":"tjson","auth":"ted","qq":"903991034","weixin":"mr_ted90","create_date":
"2020-10-12 10:46:46","others":{"like":"18-year-old girl","favorite":["篮球","足球","台球"],"friends":[{"id":1,"name":"周星驰"},{"id":2,"name":"范冰冰"}]}}
select @TJson.Find('name') ----查询name属性
结果:tjson
select @TJson.Find2('name2','暂无数据') ----查询name2属性,未找到使用第二个参数值['暂无数据']
结果:暂无数据
select @TJson.Find('others.like')  ---查询others对象下的like属性
结果:18-year-old girl
select @TJson.Find('others.favorite.1')  ---查询others对象下favorite第一个值
结果:足球
select @TJson.Find('others.friends.0')  ---查询others对象下friends第一个值
结果:{"id":1,"name":"周星驰"}
select @TJson.Find('others.friends.0.name')  ---查询others对象下friends下标为0的name属性
结果:周星驰
-------对已有的嵌套json修改值-----
set @TJson=@TJson.SetValue('others.friends.0.name','刘德华')  ---将查询others对象下
friends下标为0的name属性值[周星驰]修改为[刘德华]
....
....
其他更多设置就不一一列举了,聪明的你,应该能看懂键值的规则。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值