TJson 数据库json类型

构造方法:

  1. declare @TJson TJson=''; --空对象
  2. 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属性值[周星驰]修改为[刘德华]
....
....
其他更多设置就不一一列举了,聪明的你,应该能看懂键值的规则。