Hello
,
Ik haal van een server een JSON object op, die ik in Xcode wil doorlopen. Nu lukt het me om het hoogste niveau te doorlopen, maar op het moment dat ik dat doe (om vervolgens een niveau dieper te doorlopen) lijkt alle onderliggende informatie verdwenen en lijk ik enkel de toplevel informatie over te houden.
Ter verduidelijking van het verhaal;
JSON:
Log ik de hele dictionary (allCourses) krijg ik dit netjes:
Ga ik een niveau dieper dmv de for loop, dan krijg ik wel de objecten, maar niet de onderliggende informatie:
Probeer ik iets op key niveau te doen, gaat het helemaal mis:
Wat doe ik verkeer? Waardoor "verdwijnt" de informatie?
Ik haal van een server een JSON object op, die ik in Xcode wil doorlopen. Nu lukt het me om het hoogste niveau te doorlopen, maar op het moment dat ik dat doe (om vervolgens een niveau dieper te doorlopen) lijkt alle onderliggende informatie verdwenen en lijk ik enkel de toplevel informatie over te houden.
Ter verduidelijking van het verhaal;
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| NSData *allProductsData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:@"http://www.temp.nl/json2.php"]]; NSError *error; NSMutableDictionary *allCourses = [NSJSONSerialization JSONObjectWithData:allProductsData options:NSJSONReadingMutableContainers error:&error]; if( error ) { NSLog(@"%@", [error localizedDescription]); } else { //NSLog(@"y: %@",allCourses); for(NSDictionary *eachProduct in allCourses) { NSLog(@"x: %@",eachProduct); //NSLog(@"x: %@",[eachProduct objectForKey:@"name"]); } } |
JSON:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| { "regel1": { "id":"1", "name":"naam1", "image":"image1" } , "regel2": { "id":"2", "name":"naam2", "image":"image2" } } |
Log ik de hele dictionary (allCourses) krijg ik dit netjes:
C:
1
| NSLog(@"y: %@",allCourses); |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| 2014-05-29 15:17:31.832 temp[7569:60b]
y: {
regel1 = {
id = 1;
image = image1;
name = naam1;
};
regel2 = {
id = 2;
image = image2;
name = naam2;
};
} |
Ga ik een niveau dieper dmv de for loop, dan krijg ik wel de objecten, maar niet de onderliggende informatie:
C:
1
| NSLog(@"x: %@",eachProduct); |
code:
1
2
| 2014-05-29 15:13:17.862 temp[7540:60b] x: regel2 2014-05-29 15:13:17.866 temp[7540:60b] x: regel1 |
Probeer ik iets op key niveau te doen, gaat het helemaal mis:
C:
1
| NSLog(@"x: %@",[eachProduct objectForKey:@"name"]); |
code:
1
| Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x15da6140' |
Wat doe ik verkeer? Waardoor "verdwijnt" de informatie?