-4

我正在尝试解析这个在我看来写得很好的 JSON,但NSJSONSerialization不认为是相同的 AFAIK,因为它返回一个NSArray.

这是我的代码:

NSData* gamesData = [NSData dataWithContentsOfURL:
                        [NSURL URLWithString:@"http://s42sport.com/polarice/json/games.json"]
                        ];

    NSDictionary* json = nil;
    if (gamesData) {
        json = [NSJSONSerialization
                JSONObjectWithData:gamesData
                options:kNilOptions
                error:nil];
        NSLog(@"%d",json.count);
    }

问题是,

JSON有什么问题?为什么 NSSerialization 不返回我的 NSDictionary?

编辑:是的,我刚刚了解了 [...] vs {...}。谢谢你。

4

3 回答 3

2

json通过这种方式解析你的。

NSURL * url=[NSURL URLWithString:@"http://s42sport.com/polarice/json/games.json"];

NSData * data=[NSData dataWithContentsOfURL:url];

NSError * error;

NSMutableDictionary * json=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];

NSLog(@"%@",json);

NSArray * array1=[json valueForKey:@"c"];

NSLog(@"%@",array1);

试试这个代码。这肯定会为你工作。

于 2013-10-18T06:38:21.617 回答
1

NSDictionnary 应该用于 Object 而 NSArray 用于 JSON 数组

NSArray* json = nil;
if (gamesData) {
    json = [NSJSONSerialization
            JSONObjectWithData:gamesData
            options:kNilOptions
            error:nil];
    NSLog(@"%d",json.count);
}
于 2013-10-18T06:26:25.863 回答
0

您列出的 JSON 文件是一个数组(它以方括号开头和结尾),因此 Objective-C 用 NSArray 根对象反映了它。

于 2013-10-18T06:25:52.933 回答