JSON or writing dictionary
I'm gettin the followig error after converting JSON echo into a dictionary,
* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSMutableArray insertObject:atIndex:]: attempt to insert nil object at 0' *** Call stack at first throw:
Here is my JSON deserialization code, I've used this model before for a simple plist. Now I'm sending a more complicated echo (with objects and keys) and it's crashing.
NSURL *url = [NSURL URLWithString:@"http://10.0.1.8/~imac/iphone/jsontest.php"];
NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url];
NSLog(jsonreturn); // Look at the console and you can see what the results are
NSData *jsonData = [jsonreturn dataUsingEncoding:NSUTF32BigEndianStringEncoding];
NSError *error = nil;
NSDictionary * dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];
if (di开发者_JS百科ct)
{
rowsArray = [dict objectForKey:@"member"];
[rowsArray retain];
}
NSLog(@"Array: %@",rowsArray);
NSLog(@"count is: %i", [self.rowsArray count]);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *choiceR = [documentsDirectory stringByAppendingPathComponent:@"FollowingArray"];
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:rowsArray];
[array writeToFile:choiceR atomically:YES];
[array release];
[jsonreturn release];
Here is a snippet of the echo:
{
"member": [{
"userid": "18",
"firstname": "Frank",
"lastname": "Johnson",
"profile": {
"school": "7",
"grade": "12",
"teacher"
}
},
{
"userid": "38",
"firstname": "maggy",
"lastname": "Johnson",
"profile": {
"school": "7",
"grade": "12",
"teacher"
}
}
]
}
I'm assuming I'm getting a crash because the array is empty. Any Ideas if the echo is causing the crash or there an instruction in JSON to handle this kind of Keys and Objects return.
Thanks, Michael
You are passing a NSDictonary to rowsArray as your JSON data seems to be a dictionary nested within a dictionary. So I would assume that is causing rowsArray to be empty and cause the crash when you try and add it to your mutable arrray.
精彩评论