ksp*_*rin 5 sql t-sql sql-server
如何从VARCHAR(MAX)JSON 数组中删除对象?
DECLARE @Json VARCHAR(MAX) =
JSON_QUERY('[{"u":"user1","i":"item1"},{"u":"user2","i":"item2"}]')
SELECT @Json
DECLARE @NewJson VARCHAR(MAX) =
JSON_QUERY('{"u":"user3","i":"item3"}')
SELECT @NewJson
Run Code Online (Sandbox Code Playgroud)
结果
[{"u":"user1","i":"item1"},{"u":"user2","i":"item2"}]
{"u":"user3","i":"item3"}
Run Code Online (Sandbox Code Playgroud)
@NewJson到@JsonSELECT JSON_MODIFY(@Json, 'append $', JSON_QUERY(@NewJson))
Run Code Online (Sandbox Code Playgroud)
结果
[{"u":"user1","i":"item1"},{"u":"user2","i":"item2"},{"u":"user3","i":"item3"}]
Run Code Online (Sandbox Code Playgroud)
都好。
0从中删除索引@JsonSELECT JSON_MODIFY(@Json, '$[0]', NULL)
Run Code Online (Sandbox Code Playgroud)
结果
[null,{"u":"user2","i":"item2"}]
Run Code Online (Sandbox Code Playgroud)
我不希望索引0为空。我想把它去掉。
我在文档中找不到任何说明如何从数组中删除对象的内容。
我没有使用过 json 但是,因为它是一个字符串,你可以这样做;
SET @Json = JSON_MODIFY(@Json, '$[0]', NULL);
SET @Json = STUFF(@Json, CHARINDEX ('null,', 5, '');
Run Code Online (Sandbox Code Playgroud)
请注意,我目前无法测试此代码。
| 归档时间: |
|
| 查看次数: |
3575 次 |
| 最近记录: |