1

以下のようなjsonデータがあります。

[
    {"id":"2","imagePath":"image002.jpg","enDesc":"Nice Image 2"},
    {"id":"1","imagePath":"image001.jpg","enDesc":"Nice Image 1"}
]

これを という名前の変数に割り当てていますNSArray *news

今、私は以下のように3つの異なる配列を持っています.

NSArray *idArray;
NSArray *pathArray;
NSArray *descArray;

これらの配列にニュースのデータを割り当てて、最終的に以下のようにする必要があります。

NSArray *idArray = @["2","1"];
NSArray *pathArray = @["image002.jpg","image001.jpg"];
NSArray *descArray = @["Nice Image 2","Nice Image 1"];

これを行う方法はありますか?


以下の回答の助けを借りて、これが私がしたことです。

pathArray = [[NSArray alloc] initWithArray:[news valueForKey:@"imagePath"]];

何らかの理由で NSMutableArray を使用したくありませんでした。

4

4 に答える 4

2

これを使って

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:receivedData options:NSJSONReadingMutableContainers error:nil];

次に、そこから必要なすべての情報を抽出できます。NSDictionaryを含むNSArrayがあり、そこに移動してobjectForKey:を使用して、必要なすべての情報を取得できます。

于 2013-07-04T12:58:52.413 に答える
2

JSON データを Dictionary に変換するには、JSONKit または TouchJSON を使用する必要があります。あなたがこれを行うよりも:

NSArray *idArray = [dictionary valueForKeyPath:@"id"]; // KVO
于 2013-07-04T12:56:52.833 に答える
-1

はい、上記の回答はすべて正しいです。簡単に使用できるように、すべてを統合しています。

NSArray *serverResponseArray = [NSJSONSerialization JSONObjectWithData:receivedData options:NSJSONReadingMutableContainers error:nil]; // I am assigning this json object to an array because as i show it is in array format.

今:

NSArray *idArray = [[NSMutableArray alloc] init];
NSArray *pathArray = [[NSMutableArray alloc] init];
NSArray *descArray = [[NSMutableArray alloc] init];
for(NSDictionary *news in serverResponseArray) 
{
   [idArray addObject:[news valueForKey:@"id"]];
   [pathArray addObject:[news valueForKey:@"imagePath"]];
   [descArray addObject:[news valueForKey:@"enDesc"]];
}
于 2013-07-04T13:36:14.413 に答える