我有一个简单的 JSON 返回,其中包括以下内容:
{"GetMDXResponseResult":"{\" : [{\"cubeDatabaseName\" : \"Adventure Works DW 2008R2\",\"cubeName\" : \"Adventure Works\",\"cubeBaseName\" : \"\"},{\"cubeDatabaseName\" : \"Adventure Works DW 2008R2\",\"cubeName\" : \"Mined Customers\",\"cubeBaseName\" : \"\"}]}"}
我要做的是使用 NSJSONSerialization 将文件解析为字典,然后将一些属性(例如“cubeName”)返回到数组中。我应该在这里指出,我一直在关注 Ray Wenderlich 关于这个主题的教程以及其他几个教程,但没有成功。我的问题是从 JSON 序列化程序返回的字典返回得很好,但是当我尝试从中获取属性到数组中时(如教程通常所示),数组总是返回 null。
这是我非常简单的代码:
NSString *jsonFilePath = [[NSBundle mainBundle] pathForResource:@"GetMDXResponse(CubeQuery)" ofType:@"json"];
NSData *jsonData = [NSData dataWithContentsOfFile:jsonFilePath];
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil];
NSArray *names = [jsonDictionary objectForKey:@"cubeName"];
NSLog(@"JSON Objects in Dictionary: %@",jsonDictionary);
NSLog(@"Cube Names: %@",names);
这是第一个 NSLog 的输出:
JSON Objects in Dictionary: {
GetMDXResponseResult = "{\" : [{\"cubeDatabaseName\" : \"Adventure Works DW 2008R2\",\"cubeName\" : \"Adventure Works\",\"cubeBaseName\" : \"\"},{\"cubeDatabaseName\" : \"Adventure Works DW 2008R2\",\"cubeName\" : \"Mined Customers\",\"cubeBaseName\" : \"\"}]}";
}
第二个 NSLog 的输出:
Cube Names: (null)
我已经尝试了所有我能想到的东西,并且花了一周的时间研究和浏览 Stack Overflow,但没有任何帮助。我尝试将字典更改为数组,反之亦然,我尝试枚举字典,我尝试获取 objectAtIndex,我尝试遍历数组,但没有任何效果。除了我发布的内容之外的所有内容通常都会导致应用程序崩溃。
我完全没有想法,任何帮助将不胜感激。