【问题标题】:unable to convert json list to objects using jolt无法使用 jolt 将 json 列表转换为对象
【发布时间】:2020-12-24 10:50:33
【问题描述】:

我需要使用 jolt transform 来做下面的 JSON 转换。

需要从 reeval 列的列表中创建新列,有时我们只有一个值,有时我们得到多个值我的输入数据:-

示例 1:

{
  "id":"1",
  "reeval":["one","two"]
}

示例 2:

{
  "id":"2",
  "reeval":["one","two","three"]
}

示例 3:

{
  "id":"3",
  "reeval":["one"]
}

我在下面写了jolt expresson

[
   {
     "operation": "shift",
     "spec": {
       "id": "id",
       "reeval": {
         "*": "&"
       }
     }
  }
]

上面的 jolt 表达式工作正常,但无法添加列名 上述颠簸的输出如下

示例 1:

{
  "id" : "1",
  "0" : "one",
  "1" : "two"
}

示例 2:

{
  "id" : "2",
  "0" : "one",
  "1" : "two",
  "2" : "three"
}

在这里我无法更改列的名称,因为我需要更改列如下 颠簸转换后我的预期输出应该是这样的

示例 1:

{
  "id":"1",
  "reeval":"one",
  "reeval1":"two"
}

示例 2:

{
  "id":"2",
  "reeval":"one",
  "reeval1":"two",
  "reeval2":"three"
}

示例 3:

{
  "id":"3",
  "reeval":"one"
}

【问题讨论】:

    标签: json jolt


    【解决方案1】:

    &1 附加到当前的&符号就足够了,以便在树上向上一层,并在第一个 shift 转换中获取键名,然后应用另一个以仅重命名索引为零的键,例如

    [
      {
        "operation": "shift",
        "spec": {
          "id": "id",
          "reeval": {
            "*": "&1&"
          }
        }
      },
      {
        "operation": "shift",
        "spec": {
          "reeval0": "reeval",
          "*": "&"
        }
      }
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      相关资源
      最近更新 更多