2011-03-13 30 views

cevap

58

JSONKit ile birlikte gelen NSString arabirimini kullanın. Örneğin:

NSDictionary *deserializedData = [jsonString objectFromJSONString]; 

Sen JSON verilerinden elde, yoksa türünü anlamaya geri almak nesneyi test edeceğiz kabın ne tür önceden bilmek gerekir ya. (Bunun için -isKindOfClass kullanabilirsiniz: Bunun için.) Çoğu zaman, JSON verilerinde ne olduğuna dair bir beklentiniz vardır, bu yüzden bir sözlük veya dizi beklediğinizi biliyorsunuzdur, ancak yine de dersi kontrol etmek iyi bir fikirdir. geri aldığınız nesne.

+1

Cevabınız için teşekkür ederiz. {ResultCount = 7; ResultLimit = 30; ResultList = ({AlbumId = 111; ArtistId = 203}, {AlbumId = 112; ArtistId = 203}); Durum = 0}. ResultList bir dizidir. AlbumId ve ArtistId'i bir Dizide nasıl alabilirim? –

+2

Bir sözlük var gibi görünüyor, bu yüzden size yukarıda gösterdiğim çizgi bu durumda çalışmalıdır. İstediğiniz anahtar "ResultList" dür, bu nedenle, "NSArray * resultList = [deserializedData objectForKey: @" ResultList "];' ile ilişkili sözlük dizisini elde edersiniz. ResultList içindeki her nesne, istediğiniz albüm olduğunu düşündüğüm "AlbumID" ve "ArtistID" anahtarlı bir sözlük olacaktır. Bunun yerine, bu iki değerin ayrı dizilerini istiyorsanız, 'NSArray * albümleri = [resultList valueForKey: @ "AlbumID"]; 'kullanın. ArtistID için aynı. – Caleb

+1

Sadece birbiri ardına bir yol bloğuna isabet ediyorum. Diziden döngü yapmaya çalıştığımda uygulama çıkar. (int i = 0; i <[resultArray count]; i ++) { \t \t \t NSLog (@ "Değer% @:", i); \t \t} –