发布于 2016-02-18 03:40:57
如果我正确地理解了这个问题,下面的人就应该做好这项工作。我假设您可以访问JQ1.5,其中包括筛选器Mac /1(如果不是这样的话,那么很容易用定义来补充下面的文件,这可以在web上找到,例如src/builtin.jq文件),并且您有一个相当现代化的Mac或Linux样shell。
(1)使用以下两行创建一个名为jq-diff.jq的文件:
def sortKeys: to_entries | sort | from_entries;
walk( if type == "object" then sortKeys else . end )(2)假设两个包含JSON实体的文件是FILE1和FILE2,然后运行以下命令之一,这取决于您是否希望对每个文件中的JSON实体进行排序:
diff <(jq -cf jq-diff.jq FILE1 | sort) <(jq -cf jq-diff.jq FILE2 | sort)
# OR:
diff <(jq -cf jq-diff.jq FILE1) <(jq -cf jq-diff.jq FILE2)简要说明:
jq在这里的作用是对对象中的键进行排序(不对数组进行排序),并以标准的方式打印它们,每行一个( -c选项提供)。
发布于 2016-02-18 17:51:07
您可以使用-s标志将换行符分隔的JSON对象读入包含它们的JSON数组中,从而使它们符合与json-diff比较的条件。
https://stackoverflow.com/questions/35469941
复制相似问题