【问题标题】:Use Jolt to flatten an array of objects which contain array使用 Jolt 展平包含数组的对象数组
【发布时间】:2019-07-19 20:14:47
【问题描述】:

Jolt 可以展平包含数组的对象数组吗?例如,有没有办法为以下输入和输出编写 Jolt 转换规范?

摇晃https://github.com/bazaarvoice/jolt

输入:

[
  {"Id": "111", ["mobile": "1111", "home": "1112"]},
  {"Id": "222", ["mobile": "2221"]}
]

输出:

[
  {"Id": "111", "mobile": "1111"},
  {"Id": "111", "home": "1112"},
  {"Id": "222", "mobile": "2221"}
]

我没有找到表示输出数组索引的方法。

【问题讨论】:

标签: arrays json jolt


【解决方案1】:

假设输入固定为

[
  {
    "Id": "111",
    "Val": [
      {
        "mobile": "1111"
      },
      {
        "home": "1112"
      }
    ]
  },
  {
    "Id": "222",
    "Val": [
      {
        "mobile": "2221"
      }
    ]
  }
]

然后应用以下转换

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "Id": null,
        "Val": {
          "*": {
            "@": "[&3].[&0]",
            "@(2,Id)": "[&3].[&0].id"
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "[]"
      }
    }
  }
]

达到预期的输出:

[ {
  "mobile" : "1111",
  "id" : "111"
}, {
  "home" : "1112",
  "id" : "111"
}, {
  "mobile" : "2221",
  "id" : "222"
} ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多