问题标签 [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.
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);
在补丁操作中使用它时会引发异常。
谢谢你的帮助。
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# 实现
jquery - Marvin.JsonPatch 无法识别 jQuery PATCH 请求
我正在尝试向 Web API 方法发送 AJAX PATCH 请求,并让Marvin.JsonPatch识别修补对象。
到目前为止,我发送到服务器的所有内容都导致收到一个空请求。
Web API 控制器方法如下所示:
该TranslationMatchDiscounts
对象非常简单:
我的 jQuery AJAX 请求是这样组合的:
注释掉的属性显示了我尝试过的一些东西。
控制器确实被击中,这不是问题,并且正在发送“重复”属性,但服务器端JsonPatchDocument<TranslationMatchDiscounts>
参数是......
null
如果我将contentType
房产留在原地- 没有其他所有尝试的属性/更新
使用 jQuery 的 .ajax() 发送 PATCH 请求的正确方法是什么?
kubectl - `kubectl patch` 数组的每个元素
我想用一个命令修补 Kubernetes 部署中的所有kubectl patch
容器模板,而不必知道它们的名称。那可能吗?
我知道我可以通过awk
,和实现替换sed
,但我更喜欢在表达式中使用类似 a 的东西......jq
kubectl replace
[*]
特定容器规范的补丁命令
示例部署
json - JSON-Patch 'remove' with empty path - 什么是官方的标准结果?
以下带有空""
路径的“删除”JSON 补丁的标准结果是什么?
是否应该清除整个对象,等于分配{}
?在http://jsonpatch.com/它说:要指向文档的根,请使用空字符串作为指针。所以我猜根上的“删除”会删除整个对象,对吧?
我尝试了两个不同的 JSON Patch 库,结果有两个不同:
- https://github.com/java-json-tools/json-patch:删除整个对象
- https://github.com/gnieh/diffson:抛出 JsResultException
官方接受的标准结果是什么?我在 RFC 中检查了 JSON 补丁(https://www.rfc-editor.org/rfc/rfc6902)但找不到任何东西。
c# - JSON 补丁和“聚合”DTO
一个有点做作但仍然很重要的例子。
假设以下情况UserDetails
是 RESTful Web 服务使用的聚合 DTO(不确定术语是否正确,请教育我,但基本上是从不同商店/服务收集信息的模型)。它不一定与它收集在一起的对象具有相同的属性名称。
让我们的商店持久化以下模型:
让 UserDetails 对象被这样填充:
也就是说,设置FirstName
orSurname
应该委托给,UserService
和.UserGroupId
GroupService
这个UserDetails
对象用于 GET 和 PUT,这里的逻辑非常简单,但是这个对象的 JSON Patch 文档是为 PATCH 请求发送的。这显然要复杂得多。
我们如何才能改变用户组?我想出的最好的(“最好的”被非常松散地使用)是这样的:
这是非常可怕的。这是很多样板,并且依赖于魔术字符串。
无需请求更改Microsoft.AspNetCore.JsonPatch
API,例如
至少会摆脱魔法弦,但是,imo,这感觉不对!
JsonPatch 在这方面似乎非常有限,似乎更适合 DAO(实体)和 DTO(模型)之间存在 1:1 映射的系统。
有人有什么好主意吗?不能很难打败我想出的牛肚!!
c# - JSON Patch - 客户端和服务器之间的文档同步
我们有一个复杂的 JSON 文档。我们目前使用涉及整个文档的 GET/POST 操作来管理更改。我们想停止来回发送整个文档,所以我们正在研究 JSON Patch。
有一些库可以生成 RFC 6902 中指定的补丁文档。为了生成补丁文档,客户端似乎有必要维护一个大文档的副本。在客户端进行更改,生成补丁文档,补丁客户端上的“工作副本”,将 HTTP PATCH 发送到服务器,并在服务器端应用补丁。
这使得有必要确保完整文档的客户端表示和服务器表示是同步的。
这是一种适当的方法,还是有更好的指导?
python-3.x - SQLAlchemy / jsonpatch - 如何使补丁路径不区分大小写?
我一直在尝试查找一些jsonpatch==1.16
有关如何使 PATCH 路径不区分大小写的文档。问题是:
似乎要求 DB (MySQL / MariaDB) 列也完全正确firstname
,而不是例如Firstname
or FirstName
。当我将 JSON 中的路径更改为/FirstName
DB 列时,补丁就可以正常工作。但我不确定在这种情况下您是否应该在 JSON 中使用 CamelCase?好像有点不标准。
我怎样才能jsonpatch
至少不区分大小写?或者,是否有某种方法可以在中间插入一些映射,例如:
使用 Python 3.5、SQLAlchemy 1.1.13 和 Flask-SQLAlchemy 2.2
c# - 从原始 JSon 和实际 JSon 获取 JsonPatchDocument 操作
我想在比较原始 json 和实际 json 期间获得所有操作。JsonPatchDocument 的正常使用是对 expandoObject 应用操作以创建 json。我想要相反的,并且没有工具可以做到这一点。换句话说,我想使用将原始 json 转换为实际 json 的所有操作来构建 JsonPatchDocument。
我开始了一个算法,但它会很丑陋而且没有性能。
这部分算法将只生成 json 中的新属性,而不是更新和删除。
您对这种算法或更简单的方法有什么建议吗?