我正在使用 Google diff-match-patch JAVA 插件在两个 JSON 字符串之间创建补丁并将补丁存储到数据库中。
diff_match_patch dmp = new diff_match_patch();
LinkedList<Patch> diffs = dmp.patch_make(latestString, originalString);
String patch = dmp.patch_toText(diffs); // Store patch to DB
现在有什么方法可以通过传递来使用它patch
来重新创建?originalString
latestString
我对此进行了谷歌搜索,发现这条非常古老的评论@Google diff-match-patch Wiki说,
只需循环 diff,将 DIFF_INSERT 与 DIFF_DELETE 交换,然后应用补丁即可完成取消修补。
但我没有找到任何有用的代码来证明这一点。我怎样才能用我现有的代码实现这一点?任何指针或代码参考将不胜感激。
编辑:
我面临的问题是,在前端我显示了一个修订模块,该模块显示了特定片段的所有事务(例如员工详细信息),例如哪个用户更新了哪些详细信息等。现在我正在重新创建通过反向应用每个补丁来分段 JSON 以获取当前事务数据并将其显示为表格(使用http://marianoguerra.github.io/json.human.js/)。但是一些 JSON 数据不是有效的 JSON,我收到 JSON.parse 错误。