首页 > 解决方案 > 颠簸,映射到数组

问题描述

我有一个 json 输入,如下所示:

{
  "p1": 1,
  "p2": 2,
  "p3": 3,
  "create_time": 12345
}

我想产生如下输出:

{
  "result": [
    {
      "name": "p1",
      "value": 1,
      "create_time": 12345
    },
    {
      "name": "p2",
      "value": 2,
      "create_time": 12345
    },
    {
      "name": "p3",
      "value": 3,
      "create_time": 12345
    }
  ]
}

有什么指南吗?或者我应该尝试除 Jolt 之外的其他方法

标签: jolt

解决方案


您可以应用移位转换两次p将分散在第一步中以字母开头的每个键中的所有元素组合在一起,然后通过将每个对象组合为result最后一步中命名的数组中的数组元素来摆脱单独的键名,例如

[{
    "operation": "shift",
    "spec": {
      "p*": {
        "$": "&.name",
        "@(1,&)": "&.value",
        "@(1,create_time)": "&.create_time"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "result.[]"
    }
}]

推荐阅读