Sample code for 30+ languages & platforms
Objective-C

Swap JSON Objects

See more JSON Examples

Demonstrates how to swap two JSON objects within a JSON document.

Chilkat Objective-C Downloads

Objective-C
#import <CkoJsonObject.h>

BOOL success = NO;

CkoJsonObject *json = [[CkoJsonObject alloc] init];
json.EmitCompact = NO;

//  Load the following JSON:

//  {
//    "petter": {
//      "DOB": "26/02/1986",
//      "gender": "male",
//      "country": "US"
//    },
//    "Sara": {
//      "DOB": "13/05/1982",
//      "gender": "female",
//      "country": "FR"
//    },
//    "Jon": {
//      "DOB": "19/03/1984",
//      "gender": "male",
//      "country": "UK"
//    }
//  }

success = [json LoadFile: @"qa_data/json/people.json"];
if (success == NO) {
    NSLog(@"%@",json.LastErrorText);
    return;
}

//  Swap the positions of Jon and Sara.
int index1 = [[json IndexOf: @"Jon"] intValue];
int index2 = [[json IndexOf: @"Sara"] intValue];
[json Swap: [NSNumber numberWithInt: index1] index2: [NSNumber numberWithInt: index2]];

//  We have this now:
NSLog(@"%@",[json Emit]);

//  {
//    "petter": {
//      "DOB": "26/02/1986",
//      "gender": "male",
//      "country": "US"
//    },
//    "Jon": {
//      "DOB": "19/03/1984",
//      "gender": "male",
//      "country": "UK"
//    },
//    "Sara": {
//      "DOB": "13/05/1982",
//      "gender": "female",
//      "country": "FR"
//    }
//  }

//  To swap an inner member:

CkoJsonObject *jsonSara = [[CkoJsonObject alloc] init];
[json ObjectOf2: @"Sara" jsonObj: jsonSara];

index1 = [[jsonSara IndexOf: @"DOB"] intValue];
index2 = [[jsonSara IndexOf: @"country"] intValue];
[jsonSara Swap: [NSNumber numberWithInt: index1] index2: [NSNumber numberWithInt: index2]];

//  We now have this:
NSLog(@"%@",[json Emit]);

//  {
//    "petter": {
//      "DOB": "26/02/1986",
//      "gender": "male",
//      "country": "US"
//    },
//    "Jon": {
//      "DOB": "19/03/1984",
//      "gender": "male",
//      "country": "UK"
//    },
//    "Sara": {
//      "country": "FR",
//      "gender": "female",
//      "DOB": "13/05/1982"
//    }
//  }