1

iPhone アプリで JSON ファイルを解析したいと考えています。問題は、単純なjsonファイルを解析できることですが、次のタイプのjsonで解析を行う方法がわかりません。

[{"123":  
  [{ "item_id":"222",  
     "image_count":"2",  
     "image_filetype":".jpg",  
     "image_url":"http:\/\/someurl.jpg",  
  },  
  {"item_id":"333",  
     "image_count":"2",  
     "image_filetype":".jpg",  
     "image_url":"http:\/\/someurl.jpg",  
  }]  
}]  

「123」のすべての img_urls を抽出する方法を教えてください。

ありがとうございました。

4

5 に答える 5

3
NSString *jsonString = …;

// The top-level object is an array
NSArray *array = [jsonString JSONValue];

// The first element in the array is an object containing a name-value
// pair for the key/name "123". The value is itself an array
NSArray *itemsIn123 = [[array objectAtIndex:0] objectForKey:@"123"];

// Use Key-Value Coding to get an array of all values for the key
// image_url
NSArray *imgurls = [itemsIn123 valueForKey:@"image_url"];


コメントに基づいて編集:

最上位の配列は複数のオブジェクトで構成されている場合があり、各オブジェクトは名前が不明な単一の名前と値のペアを持っているため、最上位の配列を手動で反復処理する必要があります。

NSString *jsonString = …;

NSMutableArray *imgurls = [NSMutableArray array];

// The top-level object is an array
NSArray *array = [jsonString JSONValue];

// Each element in the top-level array is an object
for (NSDictionary *outerObject in array) {
    // Iterate over all values in the object. Each (single) value is an array
    for (NSArray *innerArray in [outerObject allValues]) {
        [imgurls addObjectsFromArray:[innerArray valueForKey:@"image_url"]];
    }
}
于 2011-05-18T03:48:52.367 に答える
-4

私は以前に JSON を使用したことがなく、以前に iPhone を使用したことも、以前に Xcode を使用したこともありませんでした...

//object and image for item ID 222
123: item_id(222).image_url("some_url")

または2番目以降の項目

//hi
123: item_id(333).image_url("some_url")

ただし、アイテム ID と画像 ID を使用して URL なしで画像を抽出できる場合は、より良い結果が得られます。そのため、オブジェクト 123 を呼び出すときに、アイテム ID と画像 ID を指定すると、すべての情報が出力されます。必要とする。たとえば、カウント、ファイルの種類、および画像をすべて表示できます。

123: item_id(222).image_id(222)

データ ファイルは SQL ですか、それとも XML ですか。通常、XML の方が高速です。したがって、ノードを読んでください。

それが役立つことを願っています。

DL。

于 2011-05-17T22:06:07.783 に答える