Json jq按键的值排序

Json jq按键的值排序,json,sorting,key,jq,Json,Sorting,Key,Jq,给定以下JSON(为了示例而过于简化),我需要按键的值对键进行排序。在这种情况下,顺序应该是id>name>type { "link": [{ "attributes": [{ "value": "ConfigurationElement", "name": "type&quo

给定以下JSON(为了示例而过于简化),我需要按键的值对键进行排序。在这种情况下,顺序应该是id>name>type

{
    "link": [{
            "attributes": [{
                    "value": "ConfigurationElement",
                    "name": "type"
                }, {
                    "value": "NAME1",
                    "name": "name"
                }, {
                    "value": "0026a8b4-ced6-410e-9213-e3fcb28b3aab",
                    "name": "id"
                }
            ],
            "href": "href1",
            "rel": "down"
        }, {
            "attributes": [{
                    "value": "0026a8b4-ced6-410e-9213-k23g15h2u1l5",
                    "name": "id"
                }, {
                    "value": "ConfigurationElement",
                    "name": "type"
                }, {
                    "value": "NAME2",
                    "name": "name"
                }
            ],
            "href": "href2",
            "rel": "down"
        }
    ],
    "total": 2
}
预期结果:

{
    "link": [{
            "attributes": [{
                    "value": "0026a8b4-ced6-410e-9213-e3fcb28b3aab",
                    "name": "id"
                }, {
                    "value": "NAME1",
                    "name": "name"
                }, {
                    "value": "ConfigurationElement",
                    "name": "type"
                }
            ],
            "href": "href1",
            "rel": "down"
        }, {
            "attributes": [{
                    "value": "0026a8b4-ced6-410e-9213-k23g15h2u1l5",
                    "name": "id"
                }, {
                    "value": "NAME2",
                    "name": "name"
                }, {
                    "value": "ConfigurationElement",
                    "name": "type"
                }
            ],
            "href": "href2",
            "rel": "down"
        }
    ],
    "total": 2
}
如果有人能帮助我,我将不胜感激。我用-S尝试了jq,用sort_by()尝试了-S,但这个例子太复杂了,我无法用我目前使用jq的经验来理解它。多谢各位

您可以执行以下操作:

jq '.link[].attributes|=sort_by(.name)'
|=
获取由
.link[]attributes
匹配的所有路径,即每个“attributes”数组,并将过滤器
排序依据(.name)
应用于每个路径,其他所有路径保持不变。

您可以执行以下操作:

jq '.link[].attributes|=sort_by(.name)'

=
获取所有由
.link[]匹配的路径。attributes
,即每个“attributes”数组,并将过滤器
排序依据(.name)
应用于每个数组,其他所有内容保持不变。

jq
是一个如此神奇而强大的东西。。。我决不会想到这一点!难以置信的我尝试了这么多次,终于开始失去了希望,而答案却如此简短明了。非常感谢!!!!干杯<代码>jq是一个如此神奇和强大的东西。。。我决不会想到这一点!难以置信的我尝试了这么多次,终于开始失去了希望,而答案却如此简短明了。非常感谢!!!!干杯