如何使用json_modify将新字符串添加到不存在的json对象

时间:2018-07-23 13:51:17

标签: json sql-server-2016

我想创建一个新的json对象,并向该json添加一些值

这是数据库中的json:

{
  "test2": {
    "1": "1",
    "3": "3"
  }
}

我可以创建一个名称为test3的对象,并放置一些这样的数据

update USERS 
set ACTIVITY = 
JSON_MODIFY(JSON_QUERY(Activity),'$.favorite.test3',JSON_QUERY('{"a": "b"}'))
where USER_ID =  14

结果是:

{
  "test2": {
    "1": "1",
    "3": "3"
  },
  "test3": {
    "a": "b"
  }
}

但是当我尝试使用json_modify来保留所有以前的数据时(如果存在,将添加新数据)。 数据不会添加到不存在的对象,也不会创建对象

update USERS 
set ACTIVITY = JSON_MODIFY(JSON_QUERY(Activity),'$.favorite.test3',JSON_MODIFY(JSON_QUERY(ACTIVITY,'$.favorite.test3'),'$.c','d'))
where USER_ID =  14

date将被添加到test3,只要存在test3。 我这样做是因为我无法从json数组中删除空数据,并决定将我的json数组更改为json对象

json_modify(@json,test2[0],NULL)
{
  "test2": {
    "1": null,
    "3": "3"
  }
}

0 个答案:

没有答案