给定两个 Javascript 对象 (A
和B
),有没有办法生成JSON 补丁,以便在应用该补丁时A
将对象的属性更改为 object 的属性B
?
例如,给定假设JSONPatch
函数(可能是与下面链接的函数名称相似的函数),需要的是generate_patch
函数。
patch = generate_patch(A, B)
JSONPatch.apply(patch, A) # modifies A so that it has the same properties as B.
在这个问题中A
,并且B
是 Javascript 对象。由 RFC6902 创建的补丁是 JSON,它将指示一个操作数组,当应用于A
该对象时将变为B
. 该generate_patch
函数虽然不需要返回 JSON,但为了提高效率,可以返回一个 Javascript 对象,该对象在被调用时会变成 RFC6902 JSON-patch 文档JSON.stringify
。
我在该主题上找到的项目是:
- https://github.com/bruth/jsonpatch-js - 只有补丁(不生成补丁)
- http://jsonpatchjs.com/ - 相同
- https://github.com/Starcounter-Jack/Fast-JSON-Patch - 观察一个对象,不取两个不同的对象