Sample code for 30+ languages & platforms
Java

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

Chilkat2 Java
import com.chilkatsoft.chilkat2.JsonArray;
import com.chilkatsoft.chilkat2.JsonObject;

public class ChilkatExample {

    public static void main(String[] args) {
        boolean success = false;

        // Batch 1 File
        String a1 = "{\"payload\": {\"Orders\": [{\"AmazonOrderId\": \"1\",\"OrderStatus\": \"Unshipped\"},{\"AmazonOrderId\": \"2\",\"OrderStatus\": \"Unshipped\"}]}";

        // Batch 2 File
        String 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;
        JsonObject json1 = new JsonObject();
        json1.load(a1);

        JsonObject json2 = new JsonObject();
        json2.load(a2);

        // We're going to add the order records from json2 to json1.
        JsonArray jarr1 = json1.arrayOf("payload.Orders");
        JsonArray jarr2 = json2.arrayOf("payload.Orders");

        int i = 0;
        int numOrders = jarr2.getSize();
        while (i < numOrders) {
            JsonObject jOrder = jarr2.objectAt(i);
            // Assuming non-null return...
            jarr1.addObjectCopyAt(-1, jOrder);
            i = i + 1;
        }

        // Show the merged JSON.
        json1.setEmitCompact(false);
        System.out.println(json1.emit());

        // Result:

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