Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用JQ将JSON展平/合并到单个对象数组中_Arrays_Json_Jq - Fatal编程技术网

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

Arrays 使用JQ将JSON展平/合并到单个对象数组中,arrays,json,jq,Arrays,Json,Jq,我正在尝试将父json对象中的嵌套对象数组合并为具有jq的单个对象数组。基本上,我希望将每个值对象数组合并到数据数组下方的单个值数组中 输入示例: { "data": [ { "id": 1, "error": "error1", "key": "key1", "value": [

我正在尝试将父json对象中的嵌套对象数组合并为具有
jq
的单个对象数组。基本上,我希望将每个
对象数组合并到
数据
数组下方的单个
数组中

输入示例:

{
  "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
        }
      ]
    }
  ]
}
所需输出:

{
  "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 }

扁平化可以通过这里惯用的表达方式del(A)+A[]来完成,剩下的就是周围结构的构造,这很简单

.data |=[{值:映射(del(.value)+.value[])]