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"
;        }
;      ]
;    }
;  }