问题标签 [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 投票
1 回答
1103 浏览

c# - 使用带有 json 补丁的 ASP.NET 核心更新嵌套元素

有人知道如何使用 asp.net 核心 json 补丁更新项目的嵌套元素吗?

我尝试使用 xx.Operations.Add(new Operation<DataRequestModel>("Replace", $"schedules/{scheduleId}/status", null, DataRequestStatusEnum.ExtractionFailed));

The path segment '43688769-f45e-4e84-a8d6-f071c077b9ad' is invalid for an array index.但是当我model.ApplyTo(dataRequest);在补丁操作中使用它时会引发异常。

谢谢你的帮助。

0 投票
3 回答
1148 浏览

java - 使用任何现有的 java 库/工具对输入样本进行 JSON 到 JSON 转换

输入:

所需输出:

0 投票
3 回答
12481 浏览

c# - 如何通过比较两个 c# 对象来创建 JsonPatchDocument?

鉴于我有两个相同类型的 c# 对象,我想比较它们以创建 JsonPatchDocument。

我有一个这样定义的 StyleDetail 类:

如果我有两个 StyleDetail 对象

我现在想创建一个 JsonPatchDocument,这样我就可以将差异发送到我的 REST API... 怎么做?

在 javascript 中,有一个库可以做到这一点https://www.npmjs.com/package/rfc6902

计算两个对象之间的差异:

rfc6902.createPatch({first: 'Chris'}, {first: 'Chris', last: 'Brown'});

但我正在寻找 ac# 实现

0 投票
1 回答
1256 浏览

jquery - Marvin.JsonPatch 无法识别 jQuery PATCH 请求

我正在尝试向 Web API 方法发送 AJAX PATCH 请求,并让Marvin.JsonPatch识别修补对象。

到目前为止,我发送到服务器的所有内容都导致收到一个空请求。

Web API 控制器方法如下所示:

TranslationMatchDiscounts对象非常简单:

我的 jQuery AJAX 请求是这样组合的:

注释掉的属性显示了我尝试过的一些东西。

控制器确实被击中,这不是问题,并且正在发送“重复”属性,但服务器端JsonPatchDocument<TranslationMatchDiscounts>参数是......

  • null如果我将contentType房产留在原地
  • 没有其他所有尝试的属性/更新

使用 jQuery 的 .ajax() 发送 PATCH 请求的正确方法是什么?

0 投票
2 回答
4031 浏览

kubectl - `kubectl patch` 数组的每个元素

我想用一个命令修补 Kubernetes 部署中的所有kubectl patch容器模板,而不必知道它们的名称。那可能吗?

我知道我可以通过awk,和实现替换sed,但我更喜欢在表达式中使用类似 a 的东西......jqkubectl replace[*]

特定容器规范的补丁命令

示例部署

0 投票
1 回答
1223 浏览

json - JSON-Patch 'remove' with empty path - 什么是官方的标准结果?

以下带有空""路径的“删除”JSON 补丁的标准结果是什么?

是否应该清除整个对象,等于分配{}?在http://jsonpatch.com/它说:要指向文档的根,请使用空字符串作为指针。所以我猜根上的“删除”会删除整个对象,对吧?

我尝试了两个不同的 JSON Patch 库,结果有两个不同:

官方接受的标准结果是什么?我在 RFC 中检查了 JSON 补丁(https://www.rfc-editor.org/rfc/rfc6902)但找不到任何东西。

0 投票
1 回答
963 浏览

c# - JSON 补丁和“聚合”DTO

一个有点做作但仍然很重要的例子。

假设以下情况UserDetails是 RESTful Web 服务使用的聚合 DTO(不确定术语是否正确,请教育我,但基本上是从不同商店/服务收集信息的模型)。它不一定与它收集在一起的对象具有相同的属性名称。

让我们的商店持久化以下模型:

让 UserDetails 对象被这样填充:

也就是说,设置FirstNameorSurname应该委托给,UserService和.UserGroupIdGroupService

这个UserDetails对象用于 GET 和 PUT,这里的逻辑非常简单,但是这个对象的 JSON Patch 文档是为 PATCH 请求发送的。这显然要复杂得多。

我们如何才能改变用户组?我想出的最好的(“最好的”被非常松散地使用)是这样的:

这是非常可怕的。这是很多样板,并且依赖于魔术字符串。

无需请求更改Microsoft.AspNetCore.JsonPatchAPI,例如

至少会摆脱魔法弦,但是,imo,这感觉不对!

JsonPatch 在这方面似乎非常有限,似乎更适合 DAO(实体)和 DTO(模型)之间存在 1:1 映射的系统。

有人有什么好主意吗?不能很难打败我想出的牛肚!!

0 投票
0 回答
333 浏览

c# - JSON Patch - 客户端和服务器之间的文档同步

我们有一个复杂的 JSON 文档。我们目前使用涉及整个文档的 GET/POST 操作来管理更改。我们想停止来回发送整个文档,所以我们正在研究 JSON Patch。

有一些库可以生成 RFC 6902 中指定的补丁文档。为了生成补丁文档,客户端似乎有必要维护一个大文档的副本。在客户端进行更改,生成补丁文档,补丁客户端上的“工作副本”,将 HTTP PATCH 发送到服务器,并在服务器端应用补丁。

这使得有必要确保完整文档的客户端表示和服务器表示是同步的。

这是一种适当的方法,还是有更好的指导?

0 投票
1 回答
848 浏览

python-3.x - SQLAlchemy / jsonpatch - 如何使补丁路径不区分大小写?

我一直在尝试查找一些jsonpatch==1.16有关如何使 PATCH 路径不区分大小写的文档。问题是:

似乎要求 DB (MySQL / MariaDB) 列也完全正确firstname,而不是例如Firstnameor FirstName。当我将 JSON 中的路径更改为/FirstNameDB 列时,补丁就可以正常工作。但我不确定在这种情况下您是否应该在 JSON 中使用 CamelCase?好像有点不标准。

我怎样才能jsonpatch至少不区分大小写?或者,是否有某种方法可以在中间插入一些映射,例如:

使用 Python 3.5、SQLAlchemy 1.1.13 和 Flask-SQLAlchemy 2.2

0 投票
0 回答
636 浏览

c# - 从原始 JSon 和实际 JSon 获取 JsonPatchDocument 操作

我想在比较原始 json 和实际 json 期间获得所有操作。JsonPatchDocument 的正常使用是对 expandoObject 应用操作以创建 json。我想要相反的,并且没有工具可以做到这一点。换句话说,我想使用将原始 json 转换为实际 json 的所有操作来构建 JsonPatchDocument。

我开始了一个算法,但它会很丑陋而且没有性能。

这部分算法将只生成 json 中的新属性,而不是更新和删除。

您对这种算法或更简单的方法有什么建议吗?