JQ 按具有相同嵌套 json 对象的不同根排序

JQ sort-by different root with identical nested json object

我想使用 JQ 通过查看 .fff.ggg.hhh.iii-属性.

中的值来对每个 ddd-json 数组进行排序

例如看这个 json:

{
  "aaa-1": {
    "ddd": [
      {"fff": {"ggg": {"hhh": {"iii": "100"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "1"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "10"}}}}
    ]
  },
  "aaa-2": {
    "ddd": [
      {"fff": {"ggg": {"hhh": {"iii": "1000"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "333"}}}}
    ]
  },
  "aaa-3": {
    "ddd": [
      {"fff": {"ggg": {"hhh": {"iii": "77"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "88"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "5555"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "1"}}}}
    ]
  }
  ...
  "aaa-n": {
    "ddd": [
      {"fff": {"ggg": {"hhh": {"iii": "989898"}}}},
      ...
      {"fff": {"ggg": {"hhh": {"iii": "1"}}}},
    ]  
  }
}

我想要的结果应该是这样的:

{
  "aaa-1": {
    "ddd": [
      {"fff": {"ggg": {"hhh": {"iii": "1"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "10"}}}}
      {"fff": {"ggg": {"hhh": {"iii": "100"}}}}
    ]
  },
  "aaa-2": {
    "ddd": [
      {"fff": {"ggg": {"hhh": {"iii": "333"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "1000"}}}}
    ]
  },
  "aaa-3": {
    "ddd": [
      {"fff": {"ggg": {"hhh": {"iii": "1"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "77"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "88"}}}},
      {"fff": {"ggg": {"hhh": {"iii": "5555"}}}}
    ]
  }
  ...
  "aaa-n": {
    "ddd": [
      {"fff": {"ggg": {"hhh": {"iii": "4"}}}},
      ...
      {"fff": {"ggg": {"hhh": {"iii": "989898"}}}}
    ]  
  }
}

我尝试了这些答案的各种组合和变体,但我无法想出解决方案:

我希望我至少能以有意义的方式描述问题。

有人可以帮助我吗?

使用 sort_by 更新 |= 每个字段的数组,并使用 tonumber 转换为数字:

jq '.[].ddd |= sort_by(.fff.ggg.hhh.iii | tonumber)'
{
  "aaa-1": {
    "ddd": [
      {"fff":{"ggg":{"hhh":{"iii":"1"}}}},
      {"fff":{"ggg":{"hhh":{"iii":"10"}}}},
      {"fff":{"ggg":{"hhh":{"iii":"100"}}}}
    ]
  },
  "aaa-2": {
    "ddd": [
      {"fff":{"ggg":{"hhh":{"iii":"333"}}}},
      {"fff":{"ggg":{"hhh":{"iii":"1000"}}}}
    ]
  },
  "aaa-3": {
    "ddd": [
      {"fff":{"ggg":{"hhh":{"iii":"1"}}}},
      {"fff":{"ggg":{"hhh":{"iii":"77"}}}},
      {"fff":{"ggg":{"hhh":{"iii":"88"}}}},
      {"fff":{"ggg":{"hhh":{"iii":"5555"}}}}
    ]
  },
  "aaa-n": {
    "ddd": [
      {"fff":{"ggg":{"hhh":{"iii":"1"}}}},
      {"fff":{"ggg":{"hhh":{"iii":"989898"}}}}
    ]
  }
}

Demo