【问题标题】:Jolt for complex JSON transform复杂 JSON 转换的 Jolt
【发布时间】:2020-05-01 12:01:59
【问题描述】:

从第一个数组元素和第二个元素中提取值并连接两者。 输入字符串:

[
  {
    "creationDate": "2020-04-01T14:14:32.685+0000",
    "factValues": [
      {
        "Factname": "Medicine",
        "factvalue": "1234556",
        "sourcePguid": "1"
      },
      {
        "Factname": "Journal",
        "factvalue": "123455",
        "sourcePguid": "1"
      }
    ]
  },
  {
    "creationDate": "2020-04-01T14:14:32.685+0000",
    "factValues": [
      {
        "Factname": "chemical",
        "factvalue": "123455567",
        "sourcePguid": "2"
      },
      {
        "Factname": "Rubber",
        "factvalue": "123455435",
        "sourcePguid": "3"
      }
    ]
  }
]

输出除外:

{
   {
    "sourcePguid" : "1",
    "Medicine":"1234556",
    "Journal":"123455"
  }, {
    "sourcePguid" : "2",
    "chemical":"123455567",
    "Rubber":"123455435"
  } 
}

请帮助我在 spec.json 中实现预期的 output.json。规范未按预期输出进行转换。我想学习如何在字符串解析器中使用属性。它会很棒。

【问题讨论】:

    标签: jolt


    【解决方案1】:

    希望对你有帮助,

    [
      {
        "operation": "shift",
        "spec": {
          "*": {
            "factValues": {
              "*": {
                "sourcePguid": "&3.sourcePguid",
                "@(0,factvalue)": "&3.@Factname"
              }
            }
          }
        }
      }, {
        "operation": "modify-overwrite-beta",
        "spec": {
          "*": {
            "sourcePguid": "=firstElement(@(1,sourcePguid))"
          }
        }
    }
    ]
    

    【讨论】:

      【解决方案2】:

      另一个使用 JSONata 的答案

      对于java:https://github.com/IBM/JSONata4Java

      $.factValues{
          sourcePguid: {
              "sourcePguid": $distinct(sourcePguid),
              Factname:factvalue
          }    
      } ~> $each(function($v){$v})
      

      【讨论】:

        猜你喜欢
        • 2023-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-05
        • 1970-01-01
        • 1970-01-01
        • 2021-12-02
        • 1970-01-01
        相关资源
        最近更新 更多