加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

在SQL Server内重命名JSON密钥的方法

发布时间:2022-03-18 09:37:45 所属栏目:编程 来源:互联网
导读:小编给大家分享一下在SQL Server中重命名JSON密钥的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 如果你一直使用JSON_MODIFY()函数来修改SQL Server中的JSON文档,
      小编给大家分享一下在SQL Server中重命名JSON密钥的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
 
      如果你一直使用JSON_MODIFY()函数来修改SQL Server中的JSON文档,那么你可能习惯于修改key/value属性的value部分。但是你知道你也可以修改key部分吗?
  
     这样做的诀窍是将value复制到一个新键,然后删除旧键。
 
结果:
 
{"Name":"Homer"}
{"Handle":"Homer"}
这将打印出原始的键/值对,然后是新的键/值对。
 
     虽然我们可以说我们“重命名”了密钥,但实际上我们只是创建了一个新密钥,将现有值复制到该新密钥,然后将旧密钥设置为NULL来删除它。
 
     在本例中,我们使用JSON_VALUE()函数来提取值。
 
数值
 
-- Print the current JSON
PRINT @data
 
-- Rename the key (by copying the value to a new key, then deleting the old one)
SET @data=
 JSON_MODIFY(
  JSON_MODIFY(@data,'$.Population', CAST(JSON_VALUE(@data,'$.Residents') AS int)),
  '$.Residents',
  NULL
 )
-- Print the new JSON
PRINT @data
结果:
 
{"Residents":768}
{"Population":768}
所以结果是一个数字。
 
如果我们从这个例子中删除CAST()函数,我们得到的结果是:
 
-- Declare a variable and assign some JSON to it
DECLARE @data NVARCHAR(50)='{"Residents": 768}'
 
-- Print the current JSON
PRINT @data
 
-- Rename the key (by copying the value to a new key, then deleting the old one)
SET @data=
 JSON_MODIFY(
  JSON_MODIFY(@data,'$.Population', JSON_VALUE(@data,'$.Residents')),
  '$.Residents',
  NULL
 )
-- Print the new JSON
PRINT @data
结果:
 
{"Residents": 768}
{"Population":"768"}
因此,在本例中,我们不仅重命名了键,还将(JSON)数据类型从数字更改为字符串。
 
注意,JSON不区分不同的数字类型。它只有一个数字类型:number。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读