Json Diff Patch Javascript - extjs

时间:2015-03-02 13:13:13

标签: javascript json node.js git extjs

我付出了很大的努力来解决我的问题,所以最后我最终在这里发帖提问

我想在下面的给定链接中显示我的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对象之间的差异

2 个答案:

答案 0 :(得分:3)

您可能需要查看jsondiffpatch(免责声明:我是作者),

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

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

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

答案 1 :(得分:1)

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);