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