【问题标题】:Jolt Move Objects in Sub Array to Parent ArrayJolt 将子数组中的对象移动到父数组
【发布时间】:2021-03-12 13:00:01
【问题描述】:

我的 Jolt Transform 中有一个 JSON 对象数组数组,但我需要将对象向上移动到顶层数组。我尝试添加另一个 Shift,但这只是将对象移动到同一位置,或者将两个子对象的值放入一个值数组中。

输入:

[
  {
    "parent_id": 1,
    "passengers": [
      {
        "first_name": "John",
        "last_name": "Smith"
      },
      {
        "first_name": "Sarah",
        "last_name": "Jones"
      }
    ]
  },
  {
    "parent_id": 2,
    "passengers": [
      {
        "first_name": "Jess",
        "last_name": "Smith"
      },
      {
        "first_name": "Steve",
        "last_name": "Jones"
      }
    ]
  }
]

颠簸规格:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "passengers": {
          "*": {
            "@(2,parent_id)": "[&(3)].[&1].parent_id",
            "$": "[&(3)].[&1].cid",
            "first_name": "[&(3)].[&1].first_name",
            "last_name": "[&(3)].[&1].last_name"
          }
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*": {
          "pcid": "=concat(@(1,parent_id),'#',@(1,cid))"
        }
      }
    }
  }
]

电流输出:

[ [ {
  "parent_id" : 1,
  "cid" : "0",
  "first_name" : "John",
  "last_name" : "Smith",
  "pcid" : "1#0"
}, {
  "parent_id" : 1,
  "cid" : "1",
  "first_name" : "Sarah",
  "last_name" : "Jones",
  "pcid" : "1#1"
} ], [ {
  "parent_id" : 2,
  "cid" : "0",
  "first_name" : "Jess",
  "last_name" : "Smith",
  "pcid" : "2#0"
}, {
  "parent_id" : 2,
  "cid" : "1",
  "first_name" : "Steve",
  "last_name" : "Jones",
  "pcid" : "2#1"
} ] ]

期望的输出:

[ {
  "parent_id" : 1,
  "cid" : "0",
  "first_name" : "John",
  "last_name" : "Smith",
  "pcid" : "1#0"
}, {
  "parent_id" : 1,
  "cid" : "1",
  "first_name" : "Sarah",
  "last_name" : "Jones",
  "pcid" : "1#1"
}, {
  "parent_id" : 2,
  "cid" : "0",
  "first_name" : "Jess",
  "last_name" : "Smith",
  "pcid" : "2#0"
}, {
  "parent_id" : 2,
  "cid" : "1",
  "first_name" : "Steve",
  "last_name" : "Jones",
  "pcid" : "2#1"
} ]

【问题讨论】:

    标签: java arrays json jolt


    【解决方案1】:

    当添加到您的规范中时,这个移位操作应该可以解决问题:

    {
        "operation": "shift",
        "spec": {
          "*": {
            "*": "[]"
          }
        }
    }
    

    (在"modify-overwrite-beta"操作后添加)

    【讨论】:

    • 谢谢@kasptom!这一定是显而易见的。
    猜你喜欢
    • 2022-11-24
    • 1970-01-01
    • 2023-01-19
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    相关资源
    最近更新 更多