【问题标题】:Jolt, copy value along array颠簸,沿数组复制值
【发布时间】:2018-10-25 19:37:08
【问题描述】:

我想通过以下方式使用 JOLT 转换 JSON。:

json文件的输入

{
  "Document_No": "ANG4",
  "LineNo10": {
    "Type": 1,
    "Customer_No_": "1"
  },
  "LineNo11": {
    "Type": 2,
    "Customer_No_": "2"
  },
  "LineNo12": {
    "Type": 3,
    "Customer_No_": "3"
  }
}

json文件的期望输出

  [ 
    {
      "Document_No":"ANG4"  
      "Type" : 1,
      "Customer_No_" : "1",
      "Line_No" : "10"
    }, 
    {
      "Document_No":"ANG4"
      "Type" : 2,
      "Customer_No_" : "2",
      "Line_No" : "11"
    }, 
    {
      "Document_No":"ANG4"
      "Type" : 3,
      "Customer_No_" : "3",
      "Line_No" : "12"
    } 
    ]

我并不缺乏很多,但我不知道要添加什么转换才能获得所需的输出

我的 Jolt 规格如下

[
  {
    "operation": "shift",
    "spec": {
      "LineNo*": {
        "@": "&",
        "$": "&.Line_No"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "@": "[]"
      }
    }
  }
]

我的输出 json 文件:

[ {
  "Type" : 1,
  "Customer_No_" : "1",
  "Line_No" : "LineNo10"
}, {
  "Type" : 2,
  "Customer_No_" : "2",
  "Line_No" : "LineNo11"
}, {
  "Type" : 3,
  "Customer_No_" : "3",
  "Line_No" : "LineNo12"
} ]

谁能帮我解决这个问题?

【问题讨论】:

    标签: json jolt


    【解决方案1】:

    规格

    [
      {
        "operation": "shift",
        "spec": {
          "LineNo*": {
            // copy Document_No down into the "LineNo" maps
            "@(1,Document_No)": "&1.Document_No",
            "$": "&1.Line_No",
            "*": "&1.&"
          }
        }
      },
      {
        // accumulate all the "built" LineNo's into an array
        "operation": "shift",
        "spec": {
          "*": {
            "@": "[]"
          }
        }
      }
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      相关资源
      最近更新 更多