首页 > 解决方案 > 更新 JSON 数组中的元素,没有键

问题描述

我想更新 @CarJaosn 中的第 0 个元素 CarId。数组对象没有键

 DECLARE @CarJaosn VARCHAR(MAX) = 
 '[
    {
        "CarTd": 1208,
        "HoldReasonEnum":2, 
        "Attachment": '',
        "FromDate":"2021-08-18",
        "ToDate":"2021-08-18"
    }
 ]'

我试过了

SET @CarJaosn = JSON_MODIFY(@CarJaosn, '$.[0].CarTd', 5);

有什么方法可以解决吗?

标签: sqlsql-server

解决方案


JSON根是一个数组,所以不是:

SET @CarJaosn = JSON_MODIFY(@CarJaosn, '$.[0].CarTd', 5);

只需使用:

SET @CarJaosn = JSON_MODIFY(@CarJaosn, '$[0].CarTd', 5);

推荐阅读