json -jq以不同的方式对KEY和VALUES进行排序 – 如何以相同的顺序枚举它们?

前端之家收集整理的这篇文章主要介绍了json -jq以不同的方式对KEY和VALUES进行排序 – 如何以相同的顺序枚举它们?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用curl命令以 JSON格式获得REST输出,如下所示

使用以下方法获取KEY名称

curl http://test.te:8080/testApp/app/version | jq '.version' | jq '. | keys'

OUTPUT:

"Archiver-Version","Build-Id","Build-Jdk","Build-Number","Build-Tag","Built-By"

单独使用VALUES:

curl http://test.te.com:8080/testApp/app/version | jq '.version' | jq '.[]'

OUTPUT(注意值的顺序与键名的顺序不对应;例如,第一个值“user@test.com”是键“Built-By”的值,而不是像我期望的那样,对于第一个密钥,“Archiver-Version”):

"user@test.com"
"1634d38"
"sandBox"
"02-03-2014-13:41"
"testApp"

我试图将KEYS和VALUES分配给单独的数组,以便我可以迭代它们并以表格格式显示它们.

但是这两个命令以不同的方式排序,我无法直接分配值和键.

有没有改变KEYS和VALUES的排序,以便两者相同?

解决方法

jq有一个对键进行排序的选项.见 http://stedolan.github.io/jq/manual/#Invokingjq
--sort-keys / -S:

Output the fields of each object with the keys in sorted order.

然而,当前发布的jq版本(1.3)尚未进行此增强,您需要通过其主分支的最新代码编译jq.请参见http://stedolan.github.io/jq/download/,“Linux或OS X上的源代码”部分.

有关此功能的完整历史记录和详细信息,请参阅问题#79“按名称排序对象成员的选项或功能https://github.com/stedolan/jq/issues/79

猜你在找的JavaScript相关文章