2011-03-13 168 views

回答

58

使用JSONKit附带的NSString接口。例如:

NSDictionary *deserializedData = [jsonString objectFromJSONString]; 

你要么需要预先知道你会从JSON数据得到的,否则测试你回去弄清楚它的类型对象什么样的容器。 (您可以使用-isKindOfClass:)。大多数情况下,您已经预期了JSON数据中的内容,因此您知道需要字典或数组,但检查你回来的对象。

+1

感谢您的回复。我找回了一个像{ResultCount = 7; RESULTLIMIT = 30; ResultList =({AlbumId = 111; ArtistId = 203},{AlbumId = 112; ArtistId = 203});状态= 0}。 ResultList是一个数组。如何获取数组中的AlbumId和ArtistId? –

+2

它看起来像你有一本字典,所以我在上面给你看的一行应该适用于这种情况。你想要的关键是“ResultList”,所以你会说'NSArray * resultList = [deserializedData objectForKey:@“ResultList”];'获取关联的字典数组。 resultList中的每个对象都将是一个带有“AlbumID”和“ArtistID”键的字典,我认为这是你想要的。如果您希望单独使用这两个值的数组,请使用'NSArray * albums = [resultList valueForKey:@“AlbumID”];'。相同的艺术家ID。 – Caleb

+1

我只是一个接一个的路块。当我尝试循环数组时,应用程序退出。对于(int i = 0; i <[resultArray count]; i ++){0} {0} {0} \t \t} –