在 SnapLogic 中,我有一个如下所示的输入 JSON,它似乎是一个数组。我试图将其放入一个结构中,其中它是一个名为“remitLocations”的对象,由包含以下项目的地址数组组成。我一直在尝试使用映射器和结构捕捉来做到这一点。我还尝试使用 JSON 和 XML 生成器来为其提供我想要的结构,但到目前为止没有任何效果。
[
{
"addressInternalid": 2631363,
"isDelete": false,
"internalSupplierid": 3423589,
"acctGrpid": "RT",
"address1": "5309 GREENWAY",
"address2": "5301 REDWAY",
"address3": "5504 BLUEWAY",
"poBox": "0912KHJWD",
"country": "USA",
"state": "US-TX",
"city": "FREE",
"zip": "78211",
"phone": "2229808888",
"phoneExtn": "091",
"fax": "747",
"faxExtn": "737",
"fullCompanyName": "SUPPLIER MARCH 3 dba TEXT",
"requestId": 5272423,
"id": "3423589",
"facilityCode": "0001",
"systemCode": "1",
"supplierType": "Operational",
"status": "ACTIVE"
},
{
"addressInternalid": 2631367,
"isDelete": false,
"internalSupplierid": 3423589,
"acctGrpid": "RT",
"address1": "11305 4 PTS DR",
"address2": "BLDG 2,#100",
"country": "USA",
"state": "US-TX",
"city": "AUSTIN",
"zip": "78726",
"phone": "5126648805",
"phoneExtn": "123",
"fax": "123",
"faxExtn": "134",
"fullCompanyName": "SUPPLIER MARCH 3 dba TEXT",
"requestId": 5272423,
"id": "3423589",
"facilityCode": "0001",
"systemCode": "1",
"supplierType": "Operational",
"status": "ACTIVE"
},
{
"addressInternalid": 2631368,
"isDelete": false,
"internalSupplierid": 3423589,
"acctGrpid": "RT",
"address1": "REMIT 11305 4 PTS DR",
"address2": "BLDG 3",
"country": "USA",
"state": "US-TX",
"city": "AUSTIN",
"zip": "78725",
"phone": "5126600000",
"phoneExtn": "678",
"fax": "678",
"faxExtn": "678",
"fullCompanyName": "SUPPLIER MARCH 3 dba TEXT",
"requestId": 5272423,
"id": "3423589",
"facilityCode": "0001",
"systemCode": "1",
"supplierType": "Operational",
"status": "ACTIVE"
}
]
最佳答案
注意:答案包含两个解决方案。底部的解决方案似乎是更好的解决方案,因为您只使用了一个快照。
解决方案#1
使用JSON Formatter将传入文档聚合为单个 JSON。然后使用二进制到文档快照,并将编码/解码设置为无。之后,您可以解析内容并将其放在映射器中的任何字段名称下。
示例管道:
二进制到文档:
最终映射器:
输出:
注释
- JSON 格式化程序中未更改任何配置
- 在二进制到文档快照中将编码/解码设置为无非常重要
- 解析内容,例如 -
JSON.parse($content)
解决方案#2
实际上有一个更好的方法来做到这一点 - 使用“Group By N Snap with Target Field as remitLocations
and 组大小为0
。
A value of 0 instructs the Snap to group all input documents into a single document.
示例管道
按 N 分组
输出
关于arrays - 如何在 SnapLogic 中将数组项转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60638631/