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"]);

}