关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。
1年前关闭。
Improve this question
是否有标准库或工具用于计算和应用 JSON 文档的差异?基本上我有一堆大型文档,我想在网络上保持同步,并且我希望避免每次我想要同步它们时都重新发送它们的整个状态(因为其中许多变量不会改变)。换句话说,我只想传输改变的字段,而不是重新传输整个对象。我认为使用以下一组方法会很方便:
//Start with two distinct objects on the server
// prev represents a copy of the state of the object on the client
// next represents a copy of the state of the object on the server
//
//1. Compute a patch
patch = computePatch(prev, next);
//2. Send patch over the network
//3. Apply the patch on the client
applyPatch(prev, patch);
//Final invariant:
// prev represents an equivalent object to JSON.parse(JSON.stringify(next))
最佳答案
我一直在 github 上维护一个 json diff & patch 库(是的,无耻的插件):
https://github.com/benjamine/JsonDiffPatch
它使用 Neil Fraser 的 diff_match_patch 库自动处理长字符串。
它适用于浏览器和服务器(在两个 env 上运行的单元测试)。
(完整的功能列表在项目页面上)
您可能需要的唯一未实现的是为特定对象注入(inject)自定义差异/补丁功能的选项,但这听起来并不难添加,欢迎您 fork 它,甚至更好地发送拉取请求.
问候,
https://stackoverflow.com/questions/7326532/