Json 差异补丁 Javascript - extjs

Json Diff Patch Javascript - extjs

好吧,我付出了很大的努力来解决我的问题,所以最后我终于在这里发布了一个问题

我想在下面给定的 link 中像这样显示我的 JSON 差异 https://neil.fraser.name/software/diff_match_patch/svn/trunk/demos/demo_diff.html

这是给定库的文档 https://code.google.com/p/google-diff-match-patch/

任何人都知道如何使用 Sencha Extjs 来显示两个 JSON 对象之间的差异

https://www.npmjs.com/package/deep-diff

我们使用它 - 它很棒 - 示例:

var diff = require('deep-diff').diff;

var lhs = {
    name: 'my object',
    description: 'it\'s an object!',
    details: {
        it: 'has',
        an: 'array',
        with: ['a', 'few', 'elements']
    }
};

var rhs = {
    name: 'updated object',
    description: 'it\'s an object!',
    details: {
        it: 'has',
        an: 'array',
        with: ['a', 'few', 'more', 'elements', { than: 'before' }]
    }
};

var differences = diff(lhs, rhs);

你可能想看看 jsondiffpatch(免责声明:我是作者),

你可以try it online here, 只是一些亮点:

  • 智能数组差异(使用 LCS 检测 adds/removes,并找到数组中移动的项目)
  • 它非常可定制,您甚至可以编写插件来更改 diff/patch 机制的任何部分
  • 如果在图中的任何位置发现 2 个长字符串,它将使用您在内部提到的 Neil Fraser 的库来获取文本 unidiff
  • 多个格式化程序,html(在线演示中使用的那个),控制台,带注释的,现在是 jsonpatch (RFC6902)

这应该适用于 diffing/patching 任何 2 个对象,与框架无关,如果 ExtJS 在您的对象上定义了特殊的私有属性,您可以忽略它们指定 propertyFilter