Sample code for 30+ languages & platforms
AutoIt

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 AutoIt Downloads

AutoIt
Local $bSuccess = False

; Batch 1 File
Local $sA1 = "{""payload"": {""Orders"": [{""AmazonOrderId"": ""1"",""OrderStatus"": ""Unshipped""},{""AmazonOrderId"": ""2"",""OrderStatus"": ""Unshipped""}]}"

; Batch 2 File
Local $sA2 = "{""payload"": {""Orders"": [{""AmazonOrderId"": ""3"",""OrderStatus"": ""Unshipped""},{""AmazonOrderId"": ""4"",""OrderStatus"": ""Unshipped""}]}"

; Required Merged File
; {"payload": {"Orders": [{"AmazonOrderId": "1","OrderStatus": "Unshipped"},{"AmazonOrderId": "2","OrderStatus": "Unshipped"},{"AmazonOrderId": "3","OrderStatus": "Unshipped"},{"AmazonOrderId": "4","OrderStatus": "Unshipped"}]}

$bSuccess = True
$oJson1 = ObjCreate("Chilkat.JsonObject")
$oJson1.Load($sA1)

$oJson2 = ObjCreate("Chilkat.JsonObject")
$oJson2.Load($sA2)

; We're going to add the order records from json2 to json1.
Local $oJarr1 = $oJson1.ArrayOf("payload.Orders")
Local $oJarr2 = $oJson2.ArrayOf("payload.Orders")

Local $i = 0
Local $iNumOrders = $oJarr2.Size
While ($i < $iNumOrders)
Local $oJOrder = $oJarr2.ObjectAt($i)
    ; Assuming non-null return...
    $oJarr1.AddObjectCopyAt(-1,$oJOrder)
    $i = $i + 1
Wend

; Show the merged JSON.
$oJson1.EmitCompact = False
ConsoleWrite($oJson1.Emit() & @CRLF)

; Result:

; {
;   "payload": {
;     "Orders": [
;       {
;         "AmazonOrderId": "1",
;         "OrderStatus": "Unshipped"
;       },
;       {
;         "AmazonOrderId": "2",
;         "OrderStatus": "Unshipped"
;       },
;       {
;         "AmazonOrderId": "3",
;         "OrderStatus": "Unshipped"
;       },
;       {
;         "AmazonOrderId": "4",
;         "OrderStatus": "Unshipped"
;       }
;     ]
;   }
; }