0

在 SnapLogic 中,是否有简单的方法来获取第一条 JSON 记录并生成随后显示的输出?

这是试图实现的目标的简化版本......

输入记录包含两个变量和一个“skus”数组,该数组由具有两个变量的项目组成,一个“skucode”和一个“shade”。

每个输出记录都是输入记录的超集。每个输出记录将数组上方的一个数组项提升到与输入记录中的两个变量相同的级别,如下面的示例所示。

输入:

{
  "code": "ABCD",
  "name": "Product A",
  "sku": [
    {
      "skucode": "ABCD12",
      "shade": "green"
    },
    {
      "skucode": "ABCD13",
      "shade": "brown"
    },
    {
      "skucode": "ABCD14",
      "shade": "blue"
    },
    {
      "skucode": "ABCD15",
      "shade": "red"
    },

  ]
}

输出:

[{
  "code": "ABCD",
  "name": "Product A",
  "skucode": "ABCD12",
  "shade": "green"
  "sku": [
    {
      "skucode": "ABCD12",
      "shade": "green"
    },
    {
      "skucode": "ABCD13",
      "shade": "brown"
    },
    {
      "skucode": "ABCD14",
      "shade": "blue"
    },
    {
      "skucode": "ABCD15",
      "shade": "red"
    },

  ]
},

{
  "code": "ABCD",
  "name": "Product A",
  "skucode": "ABCD13",
  "shade": "brown"
  "sku": [
    {
      "skucode": "ABCD12",
      "shade": "green"
    },
    {
      "skucode": "ABCD13",
      "shade": "brown"
    },
    {
      "skucode": "ABCD14",
      "shade": "blue"
    },
    {
      "skucode": "ABCD15",
      "shade": "red"
    },

  ]
},
{
  "code": "ABCD",
  "name": "Product A",
  "skucode": "ABCD14",
  "shade": "blue"
  "sku": [
    {
      "skucode": "ABCD12",
      "shade": "green"
    },
    {
      "skucode": "ABCD13",
      "shade": "brown"
    },
    {
      "skucode": "ABCD14",
      "shade": "blue"
    },
    {
      "skucode": "ABCD15",
      "shade": "red"
    }
  ]

},
{
  "code": "ABCD",
  "name": "Product A",
  "skucode": "ABCD15",
  "shade": "red"
  "sku": [
    {
      "skucode": "ABCD12",
      "shade": "green"
    },
    {
      "skucode": "ABCD13",
      "shade": "brown"
    },
    {
      "skucode": "ABCD14",
      "shade": "blue"
    },
    {
      "skucode": "ABCD15",
      "shade": "red"
    }
  ]
}
]
4

1 回答 1

0

我想到的最简单的解决方案如下:

样品管道:

样品管道

输入(JSON 生成器):

输入

JSON拆分器之前的映射:

映射器

JSON 拆分器:

JSON 拆分器

JSON拆分器后的映射:

映射器 2

输出:

输出

注意:我没有直接$sku在包含路径中使用,而是首先将 JSON 字符串化为一个新字段,然后将其添加到包含路径列表中。这是因为您不能包含要拆分的路径。对于最终想要的结果,我只是再次将 JSON 文本解析为 JSON。

我希望这是你们需要的:)

于 2019-02-25T01:21:18.733 回答