使用JQ将JSON展平/合并为单个对象数组

诺布雷克

我正在尝试将父json对象内的嵌套对象数组合并为的单个对象数组jq基本上,我想将每个value对象数组合并到该values数组下的单个data数组中。

输入示例:

{
  "data": [
    {
      "id": 1,
      "error": "error1",
      "key": "key1",
      "value": [
        {
          "class_name": "namespace_read",
          "in_max": 148,
          "in_min": 112,
          "in_rate": 359750.71875
        },
        {
          "class_name": "namespace_write",
          "in_max": 184,
          "in_min": 152,
          "in_rate": 656.1185913085938
        },
        {
          "class_name": "namespace_test",
          "in_max": 152,
          "in_min": 152,
          "in_rate": 29.93098068237305
        }
      ]
    },
    {
      "id": 2,
      "error": "error2",
      "key": "key2",
      "value": [
        {
          "class_name": "namespace_read",
          "in_max": 156,
          "in_min": 112,
          "in_rate": 459885.03125
        },
        {
          "class_name": "namespace_write",
          "in_max": 176,
          "in_min": 152,
          "in_rate": 8970.888671875
        },
        {
          "class_name": "namespace_test",
          "in_max": 152,
          "in_min": 152,
          "in_rate": 262.3605346679688
        }
      ]
    }
  ]
}

所需输出:

{
  "data": [
    {
      "values": [
        {
          "id": 1,
          "error": "error1",
          "key": "key1",
          "class_name": "namespace_read",
          "in_max": 148,
          "in_min": 112,
          "in_rate": 359750.71875
        },
        {
          "id": 1,
          "error": "error1",
          "key": "key1",
          "class_name": "namespace_write",
          "in_max": 184,
          "in_min": 152,
          "in_rate": 656.1185913085938
        },
        {
          "id": 1,
          "error": "error1",
          "key": "key1",
          "class_name": "namespace_test",
          "in_max": 152,
          "in_min": 152,
          "in_rate": 29.93098068237305
        },
        {
          "id": 2,
          "error": "error2",
          "key": "key2",
          "class_name": "namespace_read",
          "in_max": 156,
          "in_min": 112,
          "in_rate": 459885.03125
        },
        {
          "id": 2,
          "error": "error2",
          "key": "key2",
          "class_name": "namespace_write",
          "in_max": 176,
          "in_min": 152,
          "in_rate": 8970.888671875
        },
        {
          "id": 2,
          "error": "error2",
          "key": "key2",
          "class_name": "namespace_test",
          "in_max": 152,
          "in_min": 152,
          "in_rate": 262.3605346679688
        }
      ]
    }
  ]
}

我正在尝试使用jq进行以下操作,但是试图找到一种更具可扩展性的方式来制作输出:

{ "id": .data[].id, "error": .data[].error, "key": .data[].key, "className": .data[].value[].class_name, "inMax": .data[].value[].in_max }
oguz ismail

可以通过此处的惯用表达式del(A)+ A []来进行展平,剩下的就是周围结构的构造,这是微不足道的。

.data |= [{values: map(del(.value) + .value[])}]

在线演示

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用jq展平JSON文档

来自分类Dev

将匿名对象合并为单个匿名对象

来自分类Dev

使用Knockout.js将具有嵌套数组的JS对象展平为单个HTML表行

来自分类Dev

将数组合并为单个数组

来自分类Dev

使用JQuery将数组数组合并为带有元素的单个数组

来自分类Dev

JavaScript展平对象数组

来自分类Dev

如何使用python将多个json对象合并为单个json对象

来自分类Dev

展平嵌套的对象数组

来自分类Dev

使用jq展平嵌套的JSON

来自分类Dev

展平对象中的数组

来自分类Dev

如何将单个对象内部的两个数组合并为属性

来自分类Dev

将多个数组+变量合并为单个JSON对象

来自分类Dev

如何使用JSONata将嵌套对象展平为单个深度对象?

来自分类Dev

展平数据框,将列的值合并为列表以填充单个单元格

来自分类Dev

jq如何将数组对象合并为单个对象

来自分类Dev

jq-将父对象展平为子对象

来自分类Dev

JQ将数组展平为对象

来自分类Dev

如何过滤对象数组并将其合并为单个对象?

来自分类Dev

使用jQuery将JSON对象数组合并为单个对象

来自分类Dev

将JSON数组合并为单个值

来自分类Dev

使用Knockout.js将具有嵌套数组的JS对象展平为单个HTML表行

来自分类Dev

如何使用Stream.flatmap将要展平的对象与展平的对象合并

来自分类Dev

Javascript:将两个数组合并为单个对象而不会丢失键顺序

来自分类Dev

展平并合并Javascript中的对象数组

来自分类Dev

如何使用 PHP 将多个数组合并为单个数组

来自分类Dev

“展平”对象数组?

来自分类Dev

PostgreSQL 9.5:将 json_agg 结果合并为单个 json 对象

来自分类Dev

在单个对象中从 MySQL 展平数组的正确方法

来自分类Dev

使用对象数组将对象中的数据展平

Related 相关文章

热门标签

归档