Sqlserver Json 数组操作 Json_Modify

SELECT  A.ID,'['+STRING_AGG( JSON_MODIFY(T_ShopCart_Append3.value,'$.MerchantsID',CAST(JSON_VALUE(T_ShopCart_Append3.value,'$.MerchantsID') as bigint)+100000),',')+']' as jsonAppend3 FROM T_ShopCart A
CROSS APPLY OPENJSON(A.Append3,'$') T_ShopCart_Append3
WHERE OrderNo IN (select OrderNo from T_Order WHERE OrderType='体检订单')
GROUP BY A.ID

通过OpenJson 和 Cross Apply 达到获取每条数据的Json数组数据并依靠OpneJson拆分数组为单个对象 在对单个对象进行Json_Modify 修改操作  最终使用String_Agg 函数配合 group by 合并为新的修改后的数组

 

原效果

 

 

修改后效果

 

达成了  MerchantdID 增大的效果

 

DECLARE @JsonStr nvarchar(max)
SELECT  @JsonStr='[
    {
        "imageurl":"/backuploads/images/JGImg/kfc.png",
        "RedirectUrl":"/365/index_kfc.html"
    },
    {
        "imageurl":"/backuploads/images/JGImg/rxcoffe.png",
        "RedirectUrl":"/365/index_rx.html"
    },
    {
        "imageurl":"/backuploads/images/JGImg/mdl.png",
        "RedirectUrl":"/365/index_mdl.html"
    }
]'
SELECT '['+STRING_AGG( JSON_MODIFY(value,'$.imageurl','http://'+JSON_VALUE(value,'$.imageurl')),',') +']' FROM  OPENJSON(@JsonStr,'$') 

 

posted @ 2022-05-30 16:01  o天风o  阅读(659)  评论(0编辑  收藏  举报