Sample code for 30+ languages & platforms
Dart

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

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // Batch 1 File
  final a1 = '{"payload": {"Orders": [{"AmazonOrderId": "1","OrderStatus": "Unshipped"},{"AmazonOrderId": "2","OrderStatus": "Unshipped"}]}';

  // Batch 2 File
  final 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"}]}

  final json1 = CkJsonObject();
  json1.load(a1);

  final json2 = CkJsonObject();
  json2.load(a2);

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

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

  // Show the merged JSON.
  json1.emitCompact = false;
  print(json1.emit());

  // Result:

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