我会保持简短。我正在使用此代码将 JSON 从本地文件解析为对象数组:
-(void)populateData
{
NSString* sourcePath = [[NSBundle mainBundle]pathForResource:@"ships" ofType:@"json"];
//get json string
NSString* JSONData = [[NSString alloc] initWithContentsOfFile:sourcePath encoding:NSUTF8StringEncoding error:nil];
NSData* data = [JSONData dataUsingEncoding:NSUTF8StringEncoding];
//put json in array
ships = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@", ships);
}
(注:为简洁起见只展示了一个,每个有大约20个条目)
此方法适用于格式如下的 JSON:
[
{
"name": "Santa Maria",
"operator": "Kingdom of Spain",
"flag": "flag_spain"
}
]
它为 JSON 格式返回 null,如下所示:
[
{
"name": "Santa Maria",
"operator": "Kingdom of Spain",
"flag": "flag_spain",
"launched": "November 19, 1890",
"fate": "Destroyed in Havana, Cuba in Feburary 1898."
"cost":"$4,677,788.75",
"image": "maine_img",
"image_attribution": "Image is in the public domain."
}]
我一点也不知道为什么较小的有效而较大的无效。任何帮助,将不胜感激。