问题标签 [json-patch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2867 浏览

c# - JSON 补丁验证 .Net Core

有没有人找到一种使用数据注释来防止特定属性在 json 补丁文档中更新的好方法。

模型:

逻辑:

逻辑代码只是一个示例,说明来自客户端的补丁文档看起来像什么,只是为了快速测试目的而在 C# 中生成

0 投票
2 回答
1848 浏览

json - Java 中的 JSON 补丁请求验证

在我的 Spring Boot 服务中,我使用https://github.com/java-json-tools/json-patch来处理 PATCH 请求。

除了避免修改对象 id、creation_time 等不可变字段的方法外,一切似乎都很好。我在 Github https://github.com/java-json-tools/json-patch/issues/21上发现了一个类似的问题我找不到正确的例子。

这个博客似乎提供了一些关于使用 node.js 中的解决方案验证 JSON 补丁请求的有趣解决方案。很高兴知道 JAVA 中是否已经存在类似的东西。

0 投票
0 回答
649 浏览

c# - JsonPatch 添加到数组时出错

我在 .NET Web API 项目中使用 KevinDockx-Jsonpatch 库(v2.1.0 - GitHub)从 Web API 接收 jsonpatch 部分更新。

我正在尝试使用这样的补丁将元素添加到数组中:

不幸的是,我收到了这个错误:TargetLocationAtPathSegmentNotFound

似乎 lib 不是检查数组位置,而是检查名为 links/4 的路径,显然它无法找到它。我也尝试过使用链接/- 但也有同样的问题。

我在服务器上的模型是使用实体框架代码优先方法编写的。

所以我有一个这样的对象:

对此有何建议?

0 投票
1 回答
130 浏览

neo4j - 如何通过 neo4j 或 apoc 应用通用 json-patch 操作

是否有一种奇特或棘手的方法可以将任意 jsonpatch 数组应用于带有密码甚至 apoc 的地图?

所以如果我有

  • 一张地图{a: 0, b: 0, c: 0}
  • 一组编码在地图中的操作,比如说[{replace: "a", value: 1}, {replace: "b", value: 1}]。我知道这不是中继 jsonpatch,但这就是我所需要的。如果有一个成熟的 jsonpatch 解决方案,那就更好了。

我在密码中寻找一个程序、程序的串联或一种简洁的方式来产生{a: 1, b: 1, c: 0}

在https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_map_functions中可以apoc.map.setKey(map, key, value)找到,但它一次只能操作一个值。我尝试将它与密码结合起来,但我确实需要改变地图而不是节点。FOREACH

我的尝试是

当然,我总是可以让客户端执行 jsonpatch 操作,但我更喜欢在 tx.xml 中执行此操作的方法。我知道我也可以自己编写一个程序作为最后的手段。

0 投票
2 回答
4018 浏览

c# - asp.net - 如何获取/反序列化 JsonPatchDocument 的对象?

我可以JsonPatchDocument使用 序列化模型JsonConvert.SerializeObject(),但结果类型是字符串,如何将其转换为普通数组类型?或者如何将JsonPatchDocument对象直接放入数组?

0 投票
1 回答
305 浏览

yaml - 替换 openshift scc 受限 yaml 中的参数

目前在我的 openshift 环境中,我必须使用命令手动去编辑我的 scc 受限 yaml 文件oc edit scc restricted。在这个文件中,我更新了两个参数:

allowHostDirVolumePlugin: false TO allowHostDirVolumePlugin: true

runAsUser: type: MustRunAsRange TO
runAsUser: type: RunAsAny

我希望能够在不实际编辑它们的情况下更新这些值。我已经尝试过这里提到的 json 补丁方法,但在那个例子中,我可以添加。我正在尝试使用类似的东西,
oc patch scc restricted --type=json -p '[{"op": "replace", "path": "/allowHostDirVolumePlugin", "value":"true"}]'但它不断给出错误Error from server: [pos 29]: json: decode bool: got first char "

有没有办法在不编辑 yml 文件的情况下实现这一点?

0 投票
1 回答
331 浏览

asp.net - ASP.NET JSONPatch 返回正常状态 200 但数据库表未更新。

我目前正在使用 ASP.NET MVC 创建一个 Web 应用程序。我还使用 JsonPatch 库来更新我的应用程序中的数据库。

目前,我的方法似乎正确获取传入数据并且 JsonPatch HTTP 响应返回状态 200。但我的数据库表根本没有更新。

下面是我的截图:在此处输入图像描述

要更新的值是“BCL”,是正确的,但是一旦完成这个方法,数据库表根本不会更新。

调用上述方法的代码如下所示: 在此处输入图像描述

http 请求也返回状态码 200。所以我想补丁操作应该是成功的。

我想知道我使用的 JsonPatch 版本是否有所不同?

感谢您的帮助。

0 投票
1 回答
591 浏览

java - 索引大于 9 的集合项上的 Spring Data Rest json-patch+json

实体 Parent 有一个 Item 对象的集合。

每当我尝试运行包含针对索引大于 9 的集合项的操作的 json-patch+json 请求时,Spring 都会引发以下异常:

原因:org.springframework.data.mapping.PropertyReferenceException:找不到类型项目的属性 10!遍历路径:Parent.collection。

URL 是"/Parent/1" 请求正文:

索引小于 10 的完全相同的请求可以正常工作:

它是弹簧数据休息错误吗?

0 投票
0 回答
560 浏览

json - 是否可以通过 JsonPatchDocument 更新嵌套在数组中的对象?

我正在使用 Microsoft.AspNetCore.JsonPatch V2.1.1。

我有一个这样的对象结构:

现在我想更新数组内嵌套对象中的键:

但我得到了这个例外:

JsonPatchException:找不到路径段“0”指定的目标位置。

我是否必须使用自己的 PATCH 方法为内部对象显式创建一个端点?

0 投票
1 回答
848 浏览

c# - ASP.NET Core 中的 SnakeCaseNamingStrategy 和 JsonPatch

使用 ApsNetCore.JsonPatch (2.1.1) 包时,有没有办法注册/使用“全局”ContractResolver?

我遇到了路径未解析的问题,因为我的模型中的属性在 PascalCase 中,但 JsonPatch 中的路径在 SnakeCase 中。

在这种情况下,我必须将 JsonPatchDocument 上的 ContractResolver 设置为 Startup.cs 文件中的默认/全局注册的 ContractResolver。

它有效,但我必须为我要实施的每个补丁路由都这样做。

启动配置:

控制器: