iOS作為移動端最流行的操作系統(tǒng)之一,是支持多種方式進行JSON/XML解析的。下面將介紹其中常用的幾種方法。
1. NSJSONSerialization
NSError *error = nil; NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
該方法是iOS7以后新增加的解析JSON數(shù)據(jù)的方法,使用起來非常方便。只需要將獲取的數(shù)據(jù)以NSData類型傳入,通過調(diào)用NSJSONSerialization的JSONObjectWithData方法,即可得到一個NSDictionary或NSArray對象。
2. JSONKit
NSDictionary *jsonDict = [data objectFromJSONData];
JSONKit是一個第三方庫,相比較于iOS原生的解析方法,JSONKit能夠更快地解析JSON數(shù)據(jù)。使用起來也很簡單,只需要將NSData類型的數(shù)據(jù)通過調(diào)用objectFromJSONData方法,即可得到NSDictionary或NSArray對象。
3. XMLParser
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData]; [xmlParser setDelegate:self]; [xmlParser parse];
XML數(shù)據(jù)較為復雜,解析起來相對比較麻煩。iOS原生提供了NSXMLParser類,可以用于解析XML數(shù)據(jù)。需要實現(xiàn)NSXMLParserDelegate協(xié)議,并通過設置delegate對象來進行解析。
4. TBXML
TBXML *tbxml = [[TBXML alloc] initWithXMLData:data]; TBXMLElement *root = tbxml.rootXMLElement;
TBXML是一個第三方庫,相對于iOS原生的解析方法,TBXML可以更快地解析XML數(shù)據(jù),并提供了更加方便的API。通過alloc一個TBXML對象,并將XML數(shù)據(jù)傳入初始化方法,即可獲取XML的根元素。通過訪問TBXMLElement的屬性,即可獲得元素名稱、元素內(nèi)容、元素屬性等信息。