我有一个简单的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,我尝试迭代数组,没有任何作用。除了我发布的内容之外的所有内容通常都会导致应用崩溃。
我完全没有想法,我们将非常感谢任何帮助。