是否有任何命令行实用工具可以用来查找两个JSON文件是否具有字典内键和列表内元素顺序的不变性?
这可以用jq
或其他等效工具来完成吗?
这两个JSON文件是相同的
{
"People": ["John", "Bryan"],
"City": "Boston",
"State": "MA"
}
{
"People": ["Bryan", "John"],
"State": "MA",
"City": "Boston"
}
{
"People": ["John", "Bryan", "Carla"],
"City": "Boston",
"State": "MA"
}
C
:
{
"People": ["Bryan", "John"],
"State": "MA",
"City": "Boston"
}
那就是:
$ some_diff_command A.json B.json
$ some_diff_command A.json C.json
The files are not structurally identical
如果您的shell支持进程替换(下面是bash样式,请参见文档):
diff <(jq --sort-keys . A.json) <(jq --sort-keys . B.json)
对象的键顺序将被忽略,但数组顺序仍然重要。如果需要的话,可以通过其他方式对数组值进行排序,或者使它们像集合一样(例如[“foo”,“bar”]
→{“foo”:null,“bar”:null}
;这还可以删除重复项)。
或者,根据您的需要,将diff
替换为其他一些比较器,例如cmp
、colordiff
或vimdiff
。如果您只想要一个是或否的答案,请考虑使用cmp
并将--compact-output
传递给jq
,以避免对输出进行格式化,以获得潜在的少量性能提升。
问题内容: 是否有任何命令行实用程序可用于查找两个JSON文件是否相同,且字典内键和列表内元素顺序不变? 可以使用其他等效工具完成此操作吗? 例子: 这两个JSON文件是相同的 : : 但是这两个JSON文件是不同的: : : 那将是: 问题答案: 由于jq的比较已经在不考虑键顺序的情况下比较了对象,因此剩下的就是在比较对象之前对对象中的所有列表进行排序。假设您的两个文件在每晚的最新jq上分别命名
简介 我们基于Python SDK实现了命令行工具cloudml,可以方便使用访问Xiaomi Cloud-ML服务。 由于sdk的接口更新较快,命令的使用方式可以通过-h选项获取最新的使用方法。 初始化配置文件 cloudml init 查看帮助 cloudml -h TrainJob相关命令 列举训练job cloudml jobs list 提交训练job cloudml jobs s
工欲善其事,必先利其器。学好SQLite的命令行工具,对于我们学习SQLite本身而言是非常非常有帮助的。最基本的一条就是,它让我们学习SQLite的过程更加轻松愉快。言归正传吧,在SQLite的官方下载网站,提供了支持多个平台的命令行工具,使用该工具我们可以完成大多数常用的SQLite操作,就像sqlplus之于Oracle。以下列表给出了该工具的内置命令: 命令名 命令说明 .help 列出所
命令行工具 meteor help 获取 meteor 命令行使用帮助。运行 meteor help 会列出meteor所有命令。运行meteor help <command>会打印出关于meteor <command>的详细帮助。 meteor create <name> 创建一个名为<name>的子目录,并在里面新建一个Meteor应用。 met
web3j的完全jar文件分发包对每一次发布都提供命令行工具。命令行允许你从终端(terminal)使用web3j的一些功能: 这些工具提供: 钱包创建 钱包密码管理 从一个钱包转移到另一个钱包以太币 solidity智能合约封装包的产生 命令行工具可以从github项目存储库的releases页面下载zipfile/tarball包,或者通过源代码自己编译获得;OS X用户也可以通过Homebr
命令行工具 web3j的jar包为每一个版本都提供命令行工具。命令行工具允许你直接通过一些命令使用web3j的一些功能: 钱包创建 钱包密码管理 资金从钱包转移到另一个 solidity编写的智能合同功能打包 请参阅文档以获得命令行相关的进一步的信息。