Reputation: 41
I am working on iphone app. Here I am reading an JSON array I have get its values into array the values I get in the following format :
Array : {
global = {
players = {
1 = "John Doe, A school";
10 = "Jonathan Doe, Another school";
2 = "Joe Doe, Another school";
3 = "Jane Doe, A school";
4 = "Jay Doe, Another school";
5 = "Jimmy Doe, A school";
6 = "Jeremy Doe, Another school";
7 = "Johnny Doe, A school";
8 = "Jeremiah Doe, Another school";
9 = "Jennifer Doe, A school";
};
schools = {
1 = "A school";
2 = "Another school";
3 = "The school";
4 = "The other school";
5 = "That school";
};
text = "A dynamic text that needs to be displayed to the player.";
};
Now my problem is that How can I read each part of global? after reading that How can I read schools ? etc...
Upvotes: 0
Views: 322
Reputation: 2115
Just do this
for (var i in global ) {
for(var j in global [i].schools ){
alert(global [i].schools[j]);
}
}
Upvotes: 0
Reputation: 20566
SBJson is another good Objective-C JSON library. It will parse the JSON into nested NSArray and NSDictionary objects. Canonical usage would be something like:
#import "SBJson.h"
NSString *jsonString = @"{
'name': 'Simon',
'address': {'street': '1 High Street', 'town': 'Anytown'}
}";
NSDictionary *jsonData = [jsonString JSONValue];
NSLog(@"Simon lives in %@", [jsonData valueForKeyPath:@"address.town"]);
Output:
Simon lives in Anytown
As an aside, rather than using dictionaries (denoted by the curly brackets and key:value data form), if you want a list of ordered data (e.g. players
in your example) you can just use a list (square brackets enclosing a list of values). So your data becomes:
data: {
global: {
players: [
"John Doe, A school";
"Joe Doe, Another school";
"Jane Doe, A school";
"Jay Doe, Another school";
"Jimmy Doe, A school";
"Jeremy Doe, Another school";
"Johnny Doe, A school";
"Jeremiah Doe, Another school";
"Jennifer Doe, A school";
"Jonathan Doe, Another school";
]
schools: [
"A school";
"Another school";
"The school";
"The other school";
"That school";
],
text: "A dynamic text that needs to be displayed to the player.";
}
};
Upvotes: 0
Reputation: 1016
Look at this question Comparison of JSON Parser for Objective-C (JSON Framework, YAJL, TouchJSON, etc)
It has a list of almost every major JSON parser out there. A JSON parser would convert the JSON to an array/dictionary and let you use objectForKey and objectAtIndex methods to access the structure.
Upvotes: 2