使用jq过滤内部数组中仅包含一个最大对象的JSON外部对象

卢卡莫斯

我有一个略微修改过的JSON文件,其中包含来自https://api.ipsw.me/v2.1/firmwares.json的iOS固件信息这是一个简化的版本:

输入

{
  "AppleTV5,3": {
    "firmwares": [
      {
        "version": "9.2",
        "buildid": "13Y234"
      },
      {
        "version": "9.1.1",
        "buildid": "13U717"
      },
      {
        "version": "9.1",
        "buildid": "13U85"
      }
    ],
    "bdid": 52,
    "name": "Apple TV 4 (2015)"
  },
  "AppleTV3,2": {
    "firmwares": [
      {
        "version": "8.4.1",
        "buildid": "12H523"
      },
      {
        "version": "8.3",
        "buildid": "12F69"
      }
    ],
    "bdid": 0,
    "name": "Apple TV 3 (2013)"
  },
  "AppleTV3,1": {
    "firmwares": [
      {
        "version": "8.4.1",
        "buildid": "12H523"
      },
      {
        "version": "8.3",
        "buildid": "12F69"
      },
      {
        "version": "8.2",
        "buildid": "12D508"
      }
    ],
    "bdid": 0,
    "name": "Apple TV 3"
  }
}

我想编写一个jq查询,该查询仅返回firmwares阵列中最新固件对象的每个外部对象例如:

所需的输出

{
  "AppleTV5,3": {
    "firmwares": [
      {
        "version": "9.2",
        "buildid": "13Y234"
      }
    ],
    "bdid": 52,
    "name": "Apple TV 4 (2015)"
  },
  "AppleTV3,2": {
    "firmwares": [
      {
        "version": "8.4.1",
        "buildid": "12H523"
      }
    ],
    "bdid": 0,
    "name": "Apple TV 3 (2013)"
  },
  "AppleTV3,1": {
    "firmwares": [
      {
        "version": "8.4.1",
        "buildid": "12H523"
      }
    ],
    "bdid": 0,
    "name": "Apple TV 3"
  }
}

我可以通过以下方式获取最新firmwares对象的列表

.[].firmwares | max_by(.version)

我可以从中获取值version

.[].firmwares | map(.version | values) | max

而且我可以通过firmwares匹配特定的对象来获取外部AppleTV对象version

[ . | to_entries[] | .value.firmwares |= map ( select ( .version == "8.3" ) ) ] | from_entries

但是我似乎无法结合这些技术来获得所需的输出。有人可以帮忙吗?

杰夫·梅卡多(Jeff Mercado)

您应该将其视为更新firmwares数组。我们正在使用已选择最高版本的过滤版本进行更新。

.[].firmwares |= [ max_by(.version | split(".") | map(tonumber)) // empty ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从JSON对象数组中仅获取一个元素

来自分类Dev

使用jq根据字段从对象列表中过滤出一个对象

来自分类Dev

使用内部数组和另一个数组过滤对象数组

来自分类Dev

一个json参数包含数组或对象中的数据。如何使用GSON检查数据是数组还是对象

来自分类Dev

对象数组仅包含最后一个

来自分类Dev

使用php将数组转换为另一个json对象内部的json对象

来自分类Dev

一些对象包含另一个数组的对象数组,需要通过包含数组的对象中的值对其进行过滤

来自分类Dev

如何使用jq过滤json对象数组?

来自分类Dev

检查对象内部的另一个数组中是否包含一个数组

来自分类Dev

使用 jq 为文件中的 json 数组中的每个对象添加一个新的键/值

来自分类Dev

如果对象包含另一个数组中存在值的属性,则过滤对象数组

来自分类Dev

从对象数组中仅创建一个对象,以在redux reducer中使用

来自分类Dev

从对象数组中仅创建一个对象,以在redux reducer中使用

来自分类Dev

仅打印数组属性内的对象的一个属性以及jq中数组属性的同级属性

来自分类Dev

如何使用键从json数组中获取json对象属于一个json对象

来自分类Dev

如何仅解析android中json对象中的第一个数组?

来自分类Dev

jq-从数组中仅选择和过滤某些对象

来自分类Dev

在YAML中定义仅一个对象的数组

来自分类Dev

在YAML中定义仅一个对象的数组

来自分类Dev

使用Node.js如何从一个单独的配置文件过滤一个JSON文档,该文件包含一个数组或对象包含要保留的密钥?

来自分类Dev

对象内部的向量/数组,包含另一个类的对象

来自分类Dev

如何使用jq在json文件中使用对象过滤子对象中的某些数组

来自分类Dev

过滤对象数组中对象内部的对象

来自分类Dev

JSON仅打印数组中的最后一个对象

来自分类Dev

如何在一个雄辩的json字段中求和,该字段包含Eloquent的对象数组

来自分类Dev

使用带有参数的JQ将多个json文件合并到一个对象中

来自分类Dev

是否可以使用一个相等的对象字段在包含对象的数组上使用包含?

来自分类Dev

根据包含javascript中键的另一个数组过滤对象数组

来自分类Dev

需要使用一个对象来过滤 lodash 并包含一个 between 条件

Related 相关文章

  1. 1

    从JSON对象数组中仅获取一个元素

  2. 2

    使用jq根据字段从对象列表中过滤出一个对象

  3. 3

    使用内部数组和另一个数组过滤对象数组

  4. 4

    一个json参数包含数组或对象中的数据。如何使用GSON检查数据是数组还是对象

  5. 5

    对象数组仅包含最后一个

  6. 6

    使用php将数组转换为另一个json对象内部的json对象

  7. 7

    一些对象包含另一个数组的对象数组,需要通过包含数组的对象中的值对其进行过滤

  8. 8

    如何使用jq过滤json对象数组?

  9. 9

    检查对象内部的另一个数组中是否包含一个数组

  10. 10

    使用 jq 为文件中的 json 数组中的每个对象添加一个新的键/值

  11. 11

    如果对象包含另一个数组中存在值的属性,则过滤对象数组

  12. 12

    从对象数组中仅创建一个对象,以在redux reducer中使用

  13. 13

    从对象数组中仅创建一个对象,以在redux reducer中使用

  14. 14

    仅打印数组属性内的对象的一个属性以及jq中数组属性的同级属性

  15. 15

    如何使用键从json数组中获取json对象属于一个json对象

  16. 16

    如何仅解析android中json对象中的第一个数组?

  17. 17

    jq-从数组中仅选择和过滤某些对象

  18. 18

    在YAML中定义仅一个对象的数组

  19. 19

    在YAML中定义仅一个对象的数组

  20. 20

    使用Node.js如何从一个单独的配置文件过滤一个JSON文档,该文件包含一个数组或对象包含要保留的密钥?

  21. 21

    对象内部的向量/数组,包含另一个类的对象

  22. 22

    如何使用jq在json文件中使用对象过滤子对象中的某些数组

  23. 23

    过滤对象数组中对象内部的对象

  24. 24

    JSON仅打印数组中的最后一个对象

  25. 25

    如何在一个雄辩的json字段中求和,该字段包含Eloquent的对象数组

  26. 26

    使用带有参数的JQ将多个json文件合并到一个对象中

  27. 27

    是否可以使用一个相等的对象字段在包含对象的数组上使用包含?

  28. 28

    根据包含javascript中键的另一个数组过滤对象数组

  29. 29

    需要使用一个对象来过滤 lodash 并包含一个 between 条件

热门标签

归档