0

この方法で JSON ファイルを読み取ります。

NSString *fileContentHomework = [[NSString alloc] initWithContentsOfFile:homeworkPath];

SBJsonParser *parserHomework = [[SBJsonParser alloc] init];

NSDictionary *dataHomework = (NSDictionary *) [parserHomework objectWithString:fileContentHomework error:nil];

NSArray *nameofHomework = [dataHomework objectForKey:@"nameH"];
NSArray *homeworkDifficulty = [dataHomework objectForKey:@"difficultyH"];

CHOrderedDictionary* DictionaryHomework = [CHOrderedDictionary dictionaryWithObjects:homeworkDifficulty forKeys:nameofHomework];

...それから...

NSArray *allKeys2 = [DictionaryHomework allKeys];


        for (int i = 0; i < [allKeys count]; i++) {

....

NSString *key2 = [allKeys2 objectAtIndex:i];

            NSObject *obj2 = [DictionaryHomework objectForKey:key2];

            int val;
            val = [key2 intValue];

....

JSON ファイルは次のようになります。

{"difficultyH":["name", "name"],"nameH":["2", "2"]}

上記のようにファイル内のデータが等しい場合、アプリは objectAtIndex エラーを返しますが、次の場合のようにデータが異なる場合、アプリは正常に動作することに気付きました。

{"difficultyH":["name", "name2"],"nameH":["2", "3"]}

なんで?

4

1 に答える 1

0

JSONとは何の関係もありません。最初のケースでは、重複するキーを使用してNSDictionaryを構築しようとしています。それはうまくいきません。

于 2012-08-26T14:18:25.333 に答える