Lua
Lua
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 Lua Downloads
local chilkat = require("chilkat")
-- Batch 1 File
local a1 = "{\"payload\": {\"Orders\": [{\"AmazonOrderId\": \"1\",\"OrderStatus\": \"Unshipped\"},{\"AmazonOrderId\": \"2\",\"OrderStatus\": \"Unshipped\"}]}"
-- Batch 2 File
local 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"}]}
local success = true
local json1 = chilkat.JsonObject.new()
json1:load(a1)
local json2 = chilkat.JsonObject.new()
json2:load(a2)
-- We're going to add the order records from json2 to json1.
local jarr1 = json1:array_of("payload.Orders")
local jarr2 = json2:array_of("payload.Orders")
local i = 0
local numOrders = jarr2.size
while i < numOrders do
local jOrder = jarr2:object_at(i)
-- Assuming non-null return...
jarr1:add_object_copy_at(-1, jOrder)
i = i + 1
end
-- Show the merged JSON.
json1.emit_compact = false
print(json1:emit())
-- Result:
-- {
-- "payload": {
-- "Orders": [
-- {
-- "AmazonOrderId": "1",
-- "OrderStatus": "Unshipped"
-- },
-- {
-- "AmazonOrderId": "2",
-- "OrderStatus": "Unshipped"
-- },
-- {
-- "AmazonOrderId": "3",
-- "OrderStatus": "Unshipped"
-- },
-- {
-- "AmazonOrderId": "4",
-- "OrderStatus": "Unshipped"
-- }
-- ]
-- }
-- }