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