在单个 JSON Patch 操作中向数组添加多个值?
Posted
技术标签:
【中文标题】在单个 JSON Patch 操作中向数组添加多个值?【英文标题】:Add multiple values to array in single JSON Patch operation? 【发布时间】: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 ": [] ``` 不会删除存储在那里的现有项目吗?需要明确的是,我想追加而不是替换。 【参考方案1】:不幸的是,这似乎(还没有?)可能......正如 Json Patch 规范所述:
https://www.rfc-editor.org/rfc/rfc6902#section-4.1
“添加”操作执行以下功能之一,具体取决于目标位置引用的内容:
如果目标位置指定了数组索引,则为新值 插入到数组中指定索引处。
如果目标位置指定的对象成员不 已经存在,一个新成员被添加到对象中。
如果目标位置指定了一个对象成员 存在,则替换该成员的值。
【讨论】:
以上是关于在单个 JSON Patch 操作中向数组添加多个值?的主要内容,如果未能解决你的问题,请参考以下文章