I’m newbie in iOS dev and I’m trying to parse a local Json file such as
{"quizz":[{"id":"1","Q1":"When Mickey was born","R1":"1920","R2":"1965","R3":"1923","R4","1234","response","1920"},{"id":"1","Q1":"When start the cold war","R1":"1920","R2":"1965","R3":"1923","rep4","1234","reponse","1920"}]}
here is my code:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"json"];
NSString *myJSON = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
// Parse the string into JSON
NSDictionary *json = [myJSON JSONValue];
// Get all object
NSArray *items = [json valueForKeyPath:@"quizz"];
NSEnumerator *enumerator = [items objectEnumerator];
NSDictionary* item;
while (item = (NSDictionary*)[enumerator nextObject]) {
NSLog(@"clientId = %@", [item objectForKey:@"id"]);
NSLog(@"clientName = %@",[item objectForKey:@"Q1"]);
NSLog(@"job = %@", [item objectForKey:@"Q2"]);
}
I found on this site a sample but I get the following error
-JSONValue failed. Error is: Token ‘value separator’ not expected after object key.
JSON has a strict key/Value notation, your key/value pairs for R4 and response are not correct. Try this:
If you read the string from a file, you don’t need all the slashes
Your file would be something like this:
I tested with this code:
I got the impression, that you copied old code, as you are not using apple’s serialization and a Enumerator instead of Fast Enumeration. The whole enumeration stuff could be written simple as
or even fancier with block based enumeration, hwere you have additionaly an index if needed to the fast and secure enumeration.