Source JSON:

{
  "dimensions": [
    {
      "apiName": "achievementId",
      "uiName": "Achievement ID"
    },
    {
      "apiName": "adFormat",
      "uiName": "Ad format",
      "category": "Publisher"
    }
  ],
  "metrics": [
    {
      "apiName": "active1DayUsers",
      "uiName": "1-day active users"
    },
    {
      "apiName": "active28DayUsers",
      "uiName": "28-day active users"
    }
  ],
  "name": "properties/317728157/metadata"
}

Expected:

[
   {
      "apiName":"achievementId",
      "uiName":"Achievement ID",
      "metadata_object":"dimensions"
   },
   {
      "apiName":"adFormat",
      "uiName":"Ad format",
      "category":"Publisher",
      "metadata_object":"dimensions"
   },
   {
      "apiName":"active1DayUsers",
      "uiName":"1-day active users",
      "metadata_object":"metrics"
   },
   {
      "apiName":"active28DayUsers",
      "uiName":"28-day active users",
      "metadata_object":"metrics"
   }
]

我应该同时解套两个数组:dimensionsmetrics.对于来自数组dimensions的每个对象,我应该添加字段metadata_object=dimensions.对于数组metrics-metadata_object=metrics中的每个对象.我可以用Jolt以一种不同的方式做到这一点:

[
  {
    "operation": "shift",
    "spec": {
      "dimensions": {
        "*": {
          "*": "[&1].&"
        }
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "*": {
        "metadata_object": "dimensions"
      }
    }
  }
]

但如何将两个数组一举结合起来呢?

推荐答案

您可以使用此规范:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "*": "&2.[&1].&",
          "$1": "&2.[&1].metadata_object"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": ""
      }
    }
  }
]

Json相关问答推荐

使用JSONata将具有相同键的字典合并

为什么JQ筛选器不将原始输入打印为$var|.';文档?

如何在Swift中使用JSON编码器的泛型

如何使用jq使用子值对象的键对json对象进行分组

将 json 转换为 jsonb 安全吗?

从 oracle 数据库中的 json blob 打印值

JOLT JSON 将值从一对多转换为一对一

派生类的属性没有得到价值

嵌套 JSON 到 CSV(多级)

流导入错误:重新上传时不存在布局释放 UUID

传统编程语言等价于动态 SQL

TSQL FOR JSON 嵌套值

避免 KeyError 的默认字典键

为什么在测试 RSPEC 时 JBuilder 不返回 JSON 中的响应正文

如何使用法语口音对数组进行 json_encode?

直接从 Java 中的模型类创建 JSON 对象

有必要清理 JSON 吗?

关于使用 $ref 的 JSON 模式

将 json 转换为 C# 数组?

Protocol Buffer vs Json - 何时 Select 一个而不是另一个