0

以下で構成される単純な 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\" : \"\"}]}";

}

2 番目の NSLog の出力:

Cube Names: (null)

考えられるすべてのことを試し、1 週間かけて Stack Overflow の調査と調査を行いましたが、何も役に立ちませんでした。辞書を配列に変更しようとしたり、その逆を試したり、辞書を列挙しようとしたり、objectAtIndex を取得しようとしたり、配列を反復処理しようとしたりしましたが、何も機能しません。私が投稿したもの以外は、通常、アプリがクラッシュします。

私は完全にアイデアがありません。どんな助けでも大歓迎です。

4

0 に答える 0