【问题标题】:Jolt how to include object outside list and add it to each object of list颠簸如何在列表之外包含对象并将其添加到列表的每个对象中
【发布时间】:2021-12-13 13:36:47
【问题描述】:

我有一个数组,我必须对其进行迭代并将列表外的对象附加到列表内的每个对象。它没有正确发生。由于产品是一个数组,如果它对每个对象都有多个对象,我需要拥有该对象的 typeId。

请求

[
  {
    "offers": [
      {
        "type": {
          "id": "5"
        },
        "offerings": [
          {
            "id": "10"
          },
          {
            "id": "9"
          }
        ]
      },
      {
        "type": {
          "id": "3"
        },
        "offerings": [
          {
            "id": "11"
          }
        ]
      },
      {
        "type": {
          "id": "2"
        },
        "offerings": [
          {
            "id": "14"
          },
          {
            "id": "16"
          }
        ]
      }
    ]
  }
]

我的规格

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "offers": {
          "*": {
            "type": {
              "id": "[&4].[&2].typeId"
            },
            "offerings": {
              "*": {
                "id": "[&3].[&1].offerId"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "[]"
      }
    }
  }
]

立即回复

[
  {
    "typeId": "5",
    "offerId": "10"
  },
  {
    "offerId": "9",
    "typeId": "3"
  },
  {
    "typeId": "2"
  },
  {
    "offerId": "11"
  },
  {
    "offerId": "14"
  },
  {
    "offerId": "16"
  }
]

预期

[
  {
    "typeId": "5",
    "offerId": "10"
  },
  {
    "typeId": "5",
    "offerId": "9"
  },
  {
    "typeId": "3",
    "offerId": "11"
  },
  {
    "typeId": "2",
    "offerId": "14"
  },
  {
    "typeId": "2",
    "offerId": "16"
  }
]

请帮助实现预期目标。

【问题讨论】:

    标签: java json jolt


    【解决方案1】:

    您可以将"id": "[&4].[&2].typeId" 键值对转移到标记为"offerings" 键名称为"@(2,type.id)": "[&3].[&1].typeid" 的对象中,以便根据需要组合它们,如下所示

    [
      {
        "operation": "shift",
        "spec": {
          "*": {
            "*": {
              "*": {
                "offerings": {
                  "*": {
                    "@(2,type.id)": "[&3].[&1].typeid",
                    "*": "[&3].[&1].offer&"
                  }
                }
              }
            }
          }
        }
      },
      {
        "operation": "shift",
        "spec": {
          "*": {
            "*": "[]"
          }
        }
       }
     ]
    

    【讨论】:

    • 感谢@barbaros 工作正常
    • 不客气@Chethan,很高兴为您提供帮助
    猜你喜欢
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 2021-12-13
    • 2020-04-09
    • 1970-01-01
    相关资源
    最近更新 更多