在单个JSON补丁操作中向数组添加多个值?

时间:2020-01-21 21:56:59

标签: arrays json rest http json-patch

我有一个像这样的json对象:

{
    "content" : [
        {
            "id" : 54
            "foo" : "bar"
        },
        {
            "id" : 43
            "foo" : "bar"
        },
        {
            "id" : 76
            "foo" : "bar"
        }
    ]
}

如果我想将多个项目添加到内容数组(顺序无关紧要),我可以使用一个带有单行/ JSON补丁的json补丁添加到其中吗?

{ "op": "add", "path": "/content/-", "value": [
        {
            "id" : 34
            "foo" : "bar"
        },
        {
            "id" : 23
            "foo" : "bar"
        },
        {
            "id" : 87
            "foo" : "bar"
        }
    ] 
}

还是我要为每个要添加的对象添加一行?

编辑:为清楚起见,我想添加而不是替换内容。

1 个答案:

答案 0 :(得分:0)

不幸的是,这似乎(还?)不可能......正如 Json Patch 规范所述:

https://tools.ietf.org/html/rfc6902#section-4.1

<块引用>

“添加”操作执行以下功能之一,具体取决于目标位置引用的内容:

  • 如果目标位置指定了数组索引,则新值是 插入到指定索引处的数组中。

  • 如果目标位置指定的对象成员不 已经存在,一个新成员被添加到对象中。

  • 如果目标位置指定了一个对象成员 存在,该成员的值被替换。