JSON解析返回空值仅适用于较大的值

JSON解析返回空值仅适用于较大的值

问题描述:

我将保留此简要内容。我使用这个代码来解析从本地文件JSON到对象的数组: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." 
    }] 

我还没有最小的想法,为什么较小的人工作,而较大的人没有。任何帮助,将不胜感激。

+0

错误信息告诉你什么? – 2013-05-08 23:57:41

+0

有没有,因为我有JSON解析设置为零的错误回调。 – Tarkenfire 2013-05-09 00:20:17

+0

为什么呢? – 2013-05-09 00:36:02

有一个逗号后失踪:

"fate": "Destroyed in Havana, Cuba in Feburary 1898." 
+0

这就是我在做完其中一个项目之后获得复制粘贴的内容...感谢您的注意事项。 (等待10分钟以接受答案) – Tarkenfire 2013-05-08 22:50:34

这是由于语法错误,在这条线:

"fate": "Destroyed in Havana, Cuba in Feburary 1898." 

(末尾缺少逗号)

有工具发现这种错误。例如,http://jsonlint.com。这似乎有更好的错误消息http://jsonformatter.curiousconcept.com/

请原谅,但从NSData转换为NSString,然后返回NSData是没有意义的。只需调用dataWithContensOfFile:并完成它。