Sample code for 30+ languages & platforms
Objective-C

Iterate JSON where Member Names are Data Values

See more JSON Examples

Demonstrates how to parse JSON where member names are not keywords, but instead are data values.

Chilkat Objective-C Downloads

Objective-C
#import <CkoJsonObject.h>
#import <NSString.h>

BOOL success = NO;

CkoJsonObject *json = [[CkoJsonObject alloc] init];

success = [json LoadFile: @"qa_data/json/valuesAsNames.json"];

//  Imagine we have JSON such as the following:

//  {
//    "1680": {
//      "entity_id": "1680",
//      "type_id": "simple",
//      "sku": "123"
//    },
//    "1701": {
//      "entity_id": "1701",
//      "type_id": "simple",
//      "sku": "456"
//    }
//  }
//  

//  This presents a parsing problem because the member names, such as "1680"
//  are not keywords.  Instead they are data values.  We don't know what they
//  may be in advance.  

//  To solve, we iterate over the members, get the name of each, ...
int numMembers = [json.Size intValue];
int i;
for (i = 0; i <= numMembers - 1; i++) {

    NSString *name = [json NameAt: [NSNumber numberWithInt: i]];

    NSLog(@"%@%@",name,@":");
    CkoJsonObject *jRecord = [json ObjectAt: [NSNumber numberWithInt: i]];

    NSLog(@"%@%@",@"entity_id: ",[jRecord StringOf: @"entity_id"]);
    NSLog(@"%@%@",@"type_id: ",[jRecord StringOf: @"type_id"]);
    NSLog(@"%@%@",@"sku: ",[jRecord StringOf: @"sku"]);

}