Jolt Conversion : 键/值列表到名称、值转换

问题描述 投票:0回答:1

震动规格的转换。在这里,我们将拥有 queryFriendList 列表,其中我们还有一个对象列表,并且在该列表中我们将拥有需要转换的名称值对中的详细信息。 我在键值对中有一些数据需要转换为 id 值,如

accountId:"885580007377"
,我们需要迭代 FF 数字 1...10 并形成一个单独的对象列表,如下所示。

输入震动规格:

{
  "statusCode": "0",
  "status": "SUCCESS",
  "responseId": "SubsMgmt989579439429",
  "operationName": "Query",
  "errorMsg": "",
  "queryFriendList": [
    [
      {
        "name": "Account ID",
        "value": "885580007377"
      },
      {
        "name": "Group Number",
        "value": "FN Group 1"
      },
      {
        "name": "FF Number 1",
        "value": "251808340081"
      },
      {
        "name": "FF Number 2",
        "value": "251808340082"
      },
      {
        "name": "FF Number 3",
        "value": "251808340083"
      },
      {
        "name": "FF Number 4",
        "value": "251808340084"
      },
      {
        "name": "FF Number 5",
        "value": "251808340085"
      }
    ],
    [
      {
        "name": "Account ID",
        "value": "56565"
      },
      {
        "name": "Group Number",
        "value": "FN Group 2"
      },
      {
        "name": "FF Number 1",
        "value": "878222222233"
      },
      {
        "name": "FF Number 2",
        "value": "2518083408822"
      }
    ]
  ]
}

预期输出:

{
  "data": [
    {
      "accountId": "885580007377",
      "groupNumber": "FN Group 1",
      "detailsList": {
        "FFNumber1": "251808340081",
        "FFNumber2": "251808340082",
        "FFNumber3": "251808340083",
        "FFNumber4": "251808340084",
        "FFNumber5": "251808340085"
      }
    },
    {
      "accountId": "56565",
      "groupNumber": "FN Group 2",
      "detailsList": {
        "FFNumber1": "878222222233",
        "FFNumber2": "2518083408822"
      }
    }
  ]
}
json nested mapping jolt
1个回答
0
投票

您可以使用以下移位转换规范:

[
  {
    "operation": "shift",
    "spec": {
      "queryFriendList": {
        // loop through all the "queryFriendList"
        "*": { // indexes of the array
          "*": { // indexes of the nested array
            "@value": "data[&2].@name" // generate arraywise results
                                       // while separate the objects
                                       // by indexes from the array
                                       // (derived after going 2 levels up)
          }
        }
      }
    }
  }
]
© www.soinside.com 2019 - 2024. All rights reserved.