-2

www.tiritium.com/standings.php で、php で生成されたファイルから JSON 配列を読み取ろうとしていますが、Android では問題なく動作しますが、ファイルから読み取ることができません。適切に開きますが、NSDictionary を NSArray に入れることができません。

 //parse out the json data
    NSError* error;
    NSDictionary* json = [NSJSONSerialization
                          JSONObjectWithData:responseData //1

                          options:kNilOptions
                          error:&error];

    NSArray* latestNames = [json objectForKey:@"name"]; //2

    NSLog(@"name: %@", latestNames); //3

エラーを //2 に絞り込みましたが、何が起こっているのかわかりません。データがスクリプトからどのように出力されているのか、それともアプリ自体のコードが原因なのかはわかりません。

2013-08-14 16:39:51.992 Derby Days[7951:c07] -[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x8a297b0
2013-08-14 16:39:51.993 Derby Days[7951:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x8a297b0'

私が受け取っているエラーメッセージです。

4

2 に答える 2

7

例外を読む

-[__NSCFArray objectForKey:]: unrecognized selector

JSON のルートは辞書ではなく配列です。

于 2013-08-14T21:43:16.353 に答える
0

JSON ファイルは、辞書ではなく配列を表します。そこから名前の配列を取得する必要がある場合は、 のようなキー値コーディングを使用しますNSArray *names = [json valueForKey:@"name"];。これにより、s の配列が得られますNSString

于 2013-08-14T21:44:56.400 に答える