【问题标题】:Jolt trasform from array to object and extract value从数组到对象的颠簸变换并提取值
【发布时间】:2019-01-03 08:52:33
【问题描述】:

我需要对下面的示例 json 执行 Jolt 转换:

输入

[
  {
    "DOCUMENT_HEADER_ID": "29120",
    "Descrizione": "GAS",
    "PrezzoTotale": "8.51"
  },
  {
    "DOCUMENT_HEADER_ID": "29120",
    "Descrizione": "IMPOSTE",
    "PrezzoTotale": "7.25"
  },
  ...
]

我需要转换成

{
  "DOCUMENT_HEADER_ID" : "29120",
  "invoice" : [ 
  {
    "DOCUMENT_HEADER_ID" : "29120",
    "Descrizione" : "GAS",
    "PrezzoTotale" : "8.51"
  }, {
    "DOCUMENT_HEADER_ID" : "29120",
    "Descrizione" : "IMPOSTE",
    "PrezzoTotale" : "7.25"
  },
  ...
  ]
}

使用此规范

[
  {
    "operation": "shift",
    "spec": {
      "@": "invoice"
    }
  }
]

我有这个输出:

{
  "invoice" : [ {
    "DOCUMENT_HEADER_ID" : "29120",
    "Descrizione" : "GAS",
    "PrezzoTotale" : "8.51"
  }, {
    "DOCUMENT_HEADER_ID" : "29120",
    "Descrizione" : "IMPOSTE",
    "PrezzoTotale" : "7.25"
  },
  ...
  ]
}

但我不知道如何从原始数组的第一个元素中提取 DOCUMENT_HEADER_ID 的值

【问题讨论】:

    标签: json transformation jolt


    【解决方案1】:

    一个班就可以搞定。

    [
      {
        "operation": "shift",
        "spec": {
          "@": "invoice",
          "0": {
            "DOCUMENT_HEADER_ID": "DOCUMENT_HEADER_ID"
          }
        }
      }
    ]
    

    【讨论】:

      【解决方案2】:

      我找到了正确的规范

      [
        {
          "operation": "shift",
          "spec": {
            "@": "invoice"
          }
        },
        {
          "operation": "shift",
          "spec": {
            "invoice": {
              "0": {
                "DOCUMENT_HEADER_ID": "DOCUMENT_HEADER_ID"
              },
              "@": "invoice"
            }
          }
        }
      ]
      

      【讨论】:

        【解决方案3】:

        如果必须检索单个元素,数据如下:

        "array_field": ["array_single_element"]
        

        可以使用:

        {
        "operation": "modify-overwrite-beta",
        "spec": {
          "array_field": "=concat(@(1,array_field))",
          "*": "=concat(@(1,&))"
        }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-08
          • 2022-01-07
          • 1970-01-01
          相关资源
          最近更新 更多