我在实现Jolt Spec以转换此输入时遇到了一个问题.

input:

[
  {
    "organizationName": "TOTOLAND",
    "organizationUid": "123456789",
    "usageByLicenseAndProduct": [
      {
        "productType": "VSPC",
        "licenseEdition": "Enterprise Plus",
        "workloadUsage": [
          {
            "workloadType": "VAC_Workstation_Agent"
          },
          {
            "workloadType": "VAC_Server_Agent"
          }
        ]
      }
    ]
  },
  {
    "organizationName": "TOTOLAND2",
    "organizationUid": "456789",
    "usageByLicenseAndProduct": [
      {
        "productType": "VSPC",
        "licenseEdition": "Enterprise Plus",
        "workloadUsage": [
          {
            "workloadType": "VAC_Workstation_Agent"
          }
        ]
      },
      {
        "productType": "BackupAndReplication",
        "licenseEdition": "Enterprise Plus",
        "workloadUsage": [
          {
            "workloadType": "VAC_Workstation_Agent"
          }
        ]
      }
    ]
  }
]

Output:

[
  {
    "organizationName": "TOTOLAND",
    "organizationUid": "123456789",
    "productType": "VSPC",
    "licenseEdition": "Enterprise Plus",
    "workloadType": "VAC_Workstation_Agent"
  },
  {
    "organizationName": "TOTOLAND",
    "organizationUid": "123456789",
    "productType": "VSPC",
    "licenseEdition": "Enterprise Plus",
    "workloadType": "VAC_Server_Agent"
  },
  {
    "organizationName": "TOTOLAND2",
    "organizationUid": "456789",
    "productType": "VSPC",
    "licenseEdition": "Enterprise Plus",
    "workloadType": "VAC_Workstation_Agent"
  }
]

我通过jolt-demo.apppot.comtry 了多种Jolt规格,但没有得到令人满意的转换……

你能帮我一下吗? 非常感谢! 加田

推荐答案

您可以使用此规范:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "usageByLicenseAndProduct": {
          "*": {
            "workloadUsage": {
              "*": {
                "*": "@(5,organizationUid).@(3,productType).@(1,workloadType).&",
                "@(4,organizationName)": "@(5,organizationUid).@(3,productType).@(1,workloadType).organizationName",
                "@(4,organizationUid)": "@(5,organizationUid).@(3,productType).@(1,workloadType).organizationUid",
                "@(2,productType)": "@(5,organizationUid).@(3,productType).@(1,workloadType).productType",
                "@(2,licenseEdition)": "@(5,organizationUid).@(3,productType).@(1,workloadType).licenseEdition"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "@": "[]"
        }
      }
    }
  }
]

Json相关问答推荐

合并二维数组的Jolt表达式

无法从MongoDB集合中检索正确的文档

创建Json嵌套文件 struct

如何使用模式注册中心创建从主题中取消本地化的ks qlDB表?

使用 Redis 作为键值存储

具有 (RegEx) 模式的 json-schema 中的枚举

如何编写 jolt 规范以将不同的对象转换为数组

使用 jq 将消息转换为数组

为什么根据其他工具,来自 aws rds 的 JSON 在 Docker 中格式错误运行?

Flutter:在本地文件 json 中搜索特殊的阿拉伯字符

为什么JsonConvert反序列化对象以int但不长失败

IE中Json响应下载(7~10)

json和空数组

对象序列化为 JSON(使用 Gson).如何在 UpperCamelCase 中设置字段名称?

Spring MVC:不反序列化 JSON 请求正文

json_encode() 返回 false

杰克逊:反序列化 for each 值都具有正确类型的 Map

未调用 npm package.json 脚本

将 Pandas 数据框转换为嵌套 JSON

如何在 postgresql 9.3 中循环 JSON 数组