DataFlex
DataFlex
Merge SP-API JSON Order Arrays
See more Amazon SP-API Examples
Demonstrates how to merge JSON arrays for the case of Amazon SP-API orders.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
String sA1
String sA2
Handle hoJson1
Handle hoJson2
Variant vJarr1
Handle hoJarr1
Variant vJarr2
Handle hoJarr2
Integer i
Integer iNumOrders
Variant vJOrder
Handle hoJOrder
String sTemp1
Move False To iSuccess
// Batch 1 File
Move '{"payload": {"Orders": [{"AmazonOrderId": "1","OrderStatus": "Unshipped"},{"AmazonOrderId": "2","OrderStatus": "Unshipped"}]}' To sA1
// Batch 2 File
Move '{"payload": {"Orders": [{"AmazonOrderId": "3","OrderStatus": "Unshipped"},{"AmazonOrderId": "4","OrderStatus": "Unshipped"}]}' To sA2
// Required Merged File
// {"payload": {"Orders": [{"AmazonOrderId": "1","OrderStatus": "Unshipped"},{"AmazonOrderId": "2","OrderStatus": "Unshipped"},{"AmazonOrderId": "3","OrderStatus": "Unshipped"},{"AmazonOrderId": "4","OrderStatus": "Unshipped"}]}
Move True To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJson1
If (Not(IsComObjectCreated(hoJson1))) Begin
Send CreateComObject of hoJson1
End
Get ComLoad Of hoJson1 sA1 To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJson2
If (Not(IsComObjectCreated(hoJson2))) Begin
Send CreateComObject of hoJson2
End
Get ComLoad Of hoJson2 sA2 To iSuccess
// We're going to add the order records from json2 to json1.
Get ComArrayOf Of hoJson1 "payload.Orders" To vJarr1
If (IsComObject(vJarr1)) Begin
Get Create (RefClass(cComChilkatJsonArray)) To hoJarr1
Set pvComObject Of hoJarr1 To vJarr1
End
Get ComArrayOf Of hoJson2 "payload.Orders" To vJarr2
If (IsComObject(vJarr2)) Begin
Get Create (RefClass(cComChilkatJsonArray)) To hoJarr2
Set pvComObject Of hoJarr2 To vJarr2
End
Move 0 To i
Get ComSize Of hoJarr2 To iNumOrders
While (i < iNumOrders)
Get ComObjectAt Of hoJarr2 i To vJOrder
If (IsComObject(vJOrder)) Begin
Get Create (RefClass(cComChilkatJsonObject)) To hoJOrder
Set pvComObject Of hoJOrder To vJOrder
End
// Assuming non-null return...
Get ComAddObjectCopyAt Of hoJarr1 -1 vJOrder To iSuccess
Move (i + 1) To i
Loop
// Show the merged JSON.
Set ComEmitCompact Of hoJson1 To False
Get ComEmit Of hoJson1 To sTemp1
Showln sTemp1
// Result:
// {
// "payload": {
// "Orders": [
// {
// "AmazonOrderId": "1",
// "OrderStatus": "Unshipped"
// },
// {
// "AmazonOrderId": "2",
// "OrderStatus": "Unshipped"
// },
// {
// "AmazonOrderId": "3",
// "OrderStatus": "Unshipped"
// },
// {
// "AmazonOrderId": "4",
// "OrderStatus": "Unshipped"
// }
// ]
// }
// }
End_Procedure