【问题标题】:Add multiple values to array in single JSON Patch operation?在单个 JSON Patch 操作中向数组添加多个值?
【发布时间】:2020-05-08 00:36:24
【问题描述】:

我有一个这样的 json 对象:

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

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

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

或者我是否必须为每个要添加的对象添加一行?

编辑:要清楚我想追加,而不是替换内容。

【问题讨论】:

  • 我感觉你不确定你想做什么。为什么不:``` { "op":"add","path":{"content":[]}} 或 {"op":"add","path":{"content": {"values ": []}}} ```
  • 不会删除存储在那里的现有项目吗?需要明确的是,我想追加而不是替换。

标签: arrays json rest http json-patch


【解决方案1】:

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

https://www.rfc-editor.org/rfc/rfc6902#section-4.1

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-26
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多