I’m using the SBJSONParser for my iphone app. Up to now, i’ve been parsing simple json strings such as: ["Business1","Business2"]
I’m now using PHP to get both the business name and business ID from the database within the same json string, so my PHP is giving me a result like this:
{"business_1A" : "ABC_1","businees_2A": "ABC_2" }
Here’s the code that i’m currently using to process the first JSON output which works fine:
businessNames is an NSMutableArray in the following code.
NSString *businessNamesJSON = [[NSString alloc]initWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"businessNamesJSON.php"]]];
SBJsonParser *parser = [[SBJsonParser alloc]init];
businessNames = [[parser objectWithString:businessNamesJSON error:nil]copy];
Basically, I want to split the second JSON output so that I can have two separate NSMutableArrays, one which contains the business Names and the other which holds the IDs.
How do I extract or split the second JSON output so I can do this?
Thanks in advance.
{"business_1A" : "ABC_1","businees_2A": "ABC_2" }defined an object in JSON terms, which will be returned by any sane JSON parser as an NSDictionary in Objective-C, being a collection of mappings from one object to another.You seem then to want all the keys and all the values separately. In that case you can just get them from the
NSDictionary:Take
mutableCopys if you want them. UseobjectsForKeys:notFoundMarker:if you want to guarantee that the values come out in the same order as the keys — the order of each is explicitly undefined in the documentation so don’t rely on whatever order you happen to get on whichever version of the OS you happen to test against.