场景:我想要一个比较两个 JSON 对象的函数,并返回一个包含差异列表的 JSON 对象,如果可能的话还返回更多数据,例如覆盖率指标。
var madrid = '{"type":"team","description":"Good","trophies":[{"ucl":"10"}, {"copa":"5"}]}';
var barca = '{"type":"team","description":"Bad","trophies":[{"ucl":"3"}]}';
如果我跑compare(madrid, barca)
返回的对象可能类似于:
{"description" : "Bad", "trophies":[{"ucl":"3"}, {"copa":"5"}]};
或者类似的东西,你明白了。
有谁知道这个问题的解决方案?我已经找到一个了plugin http://tlrobinson.net/projects/javascript-fun/jsondiff/#%7B%22d%22:%7B%22a%22:%22%7B%5C%22format%5C%22:%5C%22example%5C%22,%5C%22content%5C%22:%5B%7B%5C%22align%5C%22:%5C%22center%5C%22,%5C%22depth%5C%22:0,%5C%22list%5C%22:false,%5C%22content%5C%22:%5B%7B%5C%22style%5C%22:%7B%5C%22underline%5C%22:1,%5C%22bold%5C%22:2,%5C%22size%5C%22:20,%5C%22italic%5C%22:2,%5C%22color%5C%22:%5C%22FFFFFF%5C%22,%5C%22fontFamily%5C%22:%5C%22Arial%5C%22%7D,%5C%22content%5C%22:%5C%22And%20please,%20feel%20free%20to%20send%20us%20your%20feedback%20and%20comments%20to%20%5C%22%7D,%7B%5C%22style%5C%22:%7B%5C%22underline%5C%22:1,%5C%22bold%5C%22:2,%5C%22size%5C%22:20,%5C%22italic%5C%22:2,%5C%22color%5C%22:%5C%224DC3FF%5C%22,%5C%22fontFamily%5C%22:%5C%22Arial%5C%22%7D,%5C%22content%5C%22:%5C%22hello%20world%5C%22%7D,%7B%5C%22style%5C%22:%7B%5C%22underline%5C%22:1,%5C%22bold%5C%22:2,%5C%22size%5C%22:20,%5C%22italic%5C%22:2,%5C%22color%5C%22:%5C%22FFFFFF%5C%22,%5C%22fontFamily%5C%22:%5C%22Arial%5C%22%7D,%5C%22content%5C%22:%5C%22,%20or%20just%20by%20clicking%20on%20the%20%5C%22%7D,%7B%5C%22style%5C%22:%7B%5C%22underline%5C%22:1,%5C%22bold%5C%22:2,%5C%22size%5C%22:20,%5C%22italic%5C%22:2,%5C%22color%5C%22:%5C%224DC3FF%5C%22,%5C%22fontFamily%5C%22:%5C%22Arial%5C%22%7D,%5C%22content%5C%22:%5C%22feedback%5C%22%7D%5D,%5C%22ordered%5C%22:false%7D%5D,%5C%22version%5C%22:3%7D%22,%22b%22:%22%7B%5C%22format%5C%22:%5C%22example%5C%22,%5C%22version%5C%22:3.1,%5C%22content%5C%22:%5B%7B%5C%22list%5C%22:false,%5C%22depth%5C%22:0,%5C%22ordered%5C%22:false,%5C%22content%5C%22:%5B%7B%5C%22content%5C%22:%5C%22And%20please,%20feel%20free%20to%20send%20us%20your%20feedback%20and%20comments%20to%20%5C%22,%5C%22style%5C%22:%7B%5C%22size%5C%22:20,%5C%22color%5C%22:%5C%22FFFFFF%5C%22,%5C%22name%5C%22:%5C%22Arial%5C%22,%5C%22bold%5C%22:2,%5C%22italic%5C%22:2,%5C%22underline%5C%22:2%7D%7D,%7B%5C%22content%5C%22:%5C%22foo%5C%22,%5C%22style%5C%22:%7B%5C%22size%5C%22:20,%5C%22color%5C%22:%5C%224DC2FF%5C%22,%5C%22name%5C%22:%5C%22Arial%5C%22,%5C%22bold%5C%22:2,%5C%22italic%5C%22:2,%5C%22underline%5C%22:2%7D%7D,%7B%5C%22content%5C%22:%5C%22,%20or%20just%20by%20clicking%20on%20the%20%5C%22,%5C%22style%5C%22:%7B%5C%22size%5C%22:20,%5C%22color%5C%22:%5C%22FFFFFF%5C%22,%5C%22name%5C%22:%5C%22Arial%5C%22,%5C%22bold%5C%22:2,%5C%22italic%5C%22:2,%5C%22underline%5C%22:2%7D%7D,%7B%5C%22content%5C%22:%5C%22feedback%5C%22,%5C%22style%5C%22:%7B%5C%22size%5C%22:20,%5C%22color%5C%22:%5C%224DC2FF%5C%22,%5C%22name%5C%22:%5C%22Arial%5C%22,%5C%22bold%5C%22:2,%5C%22italic%5C%22:2,%5C%22underline%5C%22:2%7D%7D,%7B%5C%22content%5C%22:%5C%22%20button%20up%20above.%5C%22,%5C%22style%5C%22:%7B%5C%22size%5C%22:20,%5C%22color%5C%22:%5C%22FFFFFF%5C%22,%5C%22name%5C%22:%5C%22Arial%5C%22,%5C%22bold%5C%22:2,%5C%22italic%5C%22:2,%5C%22underline%5C%22:2%7D%7D%5D,%5C%22align%5C%22:%5C%22center%5C%22%7D%5D%7D%22%7D%7D,但我想知道是否有其他选择。