-2

jsonで次の応答がありますが、解析方法がわかりません

[{"WordArray":[{"Id":11,"Word1":"ODDER","Category":"Dyr","Differculty":1,"Language":"Danish"},{"Id":225,"Word1":"PRAG","Category":"International by","Differculty":1,"Language":"Danish"}]},{"WordArray":[{"Id":3,"Word1":"TIGER","Category":"Dyr","Differculty":1,"Language":"Danish"},{"Id":154,"Word1":"BOLLE","Category":"Mad og drikke","Differculty":1,"Language":"Danish"}]},
{"WordArray":[{"Id":3,"Word1":"TIGER","Category":"Dyr","Differculty":1,"Language":"Danish"},{"Id":147,"Word1":"PIZZA","Category":"Mad og drikke","Differculty":1,"Language":"Danish"}]}]

私は運がなくて次のことを試しました

NSMutableArray* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

NSMutableArray * roundWords = [[NSMutableArray alloc]retain ];

roundWords = [json objectAtIndex:i];

jsonには私の3つの「WordArray」が含まれていますが、どのように進めるかがわかりません。たとえば、の各項目を反復処理して値WordArrayをNSLogするにはどうすればよいWord1ですか?

ありがとう!

4

1 に答える 1

1

WordArray の各項目を繰り返し処理し、Word1 の値を NSLog にする方法

高速列挙を使用します。

for (NSDictionary *dict in array) {
    NSLog(@"%@", [dict objectForKey:@"Word1"]);
}

ところで、あなたのコードはいくつかの場所で間違っています:

NSMutableArray *roundWords = [[NSMutableArray alloc] retain];
roundWords = [json objectAtIndex:i];

retain1 つ、1 つこのようにチェーンを使用しませんallocinitオブジェクトの初期化に使用します。

2: ARC (使用しない) を使用しない限り、その行でメモリ リークが発生します。元の配列へのポインターは、別のものを再割り当てするため破棄されます。

3: [json objectAtIndex:i]is not an NSMutableArray- it is an NSDictionary(ちなみにこれは不変です。宣言は魔法ではありません - ただし、変数を宣言しても、NSJSONSerialization特に指定しない限り、不変の辞書を返すという事実には影響しません)。

于 2013-02-27T18:24:52.600 に答える