Sample code for 30+ languages & platforms
PowerShell

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

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

# Batch 1 File
$a1 = "{`"payload`": {`"Orders`": [{`"AmazonOrderId`": `"1`",`"OrderStatus`": `"Unshipped`"},{`"AmazonOrderId`": `"2`",`"OrderStatus`": `"Unshipped`"}]}"

# Batch 2 File
$a2 = "{`"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"}]}

$success = $true
$json1 = New-Object Chilkat.JsonObject
$json1.Load($a1)

$json2 = New-Object Chilkat.JsonObject
$json2.Load($a2)

# We're going to add the order records from json2 to json1.
$jarr1 = $json1.ArrayOf("payload.Orders")
$jarr2 = $json2.ArrayOf("payload.Orders")

$i = 0
$numOrders = $jarr2.Size
while (($i -lt $numOrders)) {
    $jOrder = $jarr2.ObjectAt($i)
    # Assuming non-null return...
    $jarr1.AddObjectCopyAt(-1,$jOrder)
    $i = $i + 1
}

# Show the merged JSON.
$json1.EmitCompact = $false
$($json1.Emit())

# Result:

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