从iOS JSON Serializer获取属性

时间:2013-08-26 18:40:52

标签: ios objective-c arrays json nsdictionary

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

我完全没有想法,我们将非常感谢任何帮助。

0 个答案:

没有答案