我正在尝试使用 QueryJSON 插件通过 WinMerge 比较两个长 json 文件。这些文件中的属性是随机顺序的。.\jq 的参数确实有效,但嵌套对象不受影响:
QueryJSON ". | to_entries | sort_by(.key) | from_entries"
有一些“flatten”命令没有提供我所搜索的结果(可能使用不正确)。
Jsons 可以是例如:
{
"Id": 1,
"Addresses":[
{"Street": "Street 1",
"PostalCode": 12345},
{"Street": "Street 2",
"PostalCode": 12345}
],
"Person":{
"FirstName": "Mike",
"LastName":"Boe"
}
}
{
"Id": 2,
"Person":{
"FirstName": "John",
"LastName":"Boe"
}
"Addresses":[
{"Street": "Street 3",
"PostalCode": 12345},
{"Street": "Street 2",
"PostalCode": 12345}
]
}
我可以通过指向嵌套对象来逐个比较它们
QueryJSON ".Person | to_entries | sort_by(.key) | from_entries"
但是,有没有办法对这些对象内部的属性进行排序(即使这会使它们变平)?谢谢。
jq
确实有一个选项可以对对象内的所有键进行排序:因此您只需使用以下命令:
或者,使用 WinMerge 语法: