【发布时间】:2010-06-25 20:05:47
【问题描述】:
将 JSON 回显转换为字典后出现以下错误,
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[NSMutableArray insertObject:atIndex:]:尝试在 0 处插入 nil 对象” *** 首次抛出时调用堆栈:
这是我的 JSON 反序列化代码,我之前使用过这个模型来做一个简单的 plist。现在我正在发送一个更复杂的回声(带有对象和键)并且它正在崩溃。
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 (dict)
{
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];
这是回声的sn-p:
{
"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"
}
}
]
}
我假设我正在崩溃,因为数组是空的。任何想法,如果回声导致崩溃或 JSON 中有一条指令来处理这种键和对象返回。
谢谢, 迈克尔
【问题讨论】:
标签: iphone json plist nsdictionary