1.解析使用原生解析方法。
2.JSON数据 --- OC对象
{} NSDictionary
[]NSArray
“jack” NSString @“jack”
10 -NSNumber @10
true - NSNumber @1
false - NSNumber @0
null - NSNull
3.JSON -- OC 方法
+ (nullable id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;
4.OC - - JSON
+ (nullable NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;
5.
NSJSONReadingMutableContainers = (1UL << 0),创建出来的数组和字典是可变的。
NSJSONReadingMutableLeaves = (1UL << 1), 数组或字典里面的字符是可变的。
NSJSONReadingAllowFragments = (1UL << 2)//允许解析的对象不是字典或者数组,比如字符串或者NSNumber。
6.JSONModel
Mantle:继承Mantle
JSONModel :所有都要继承JSONmodel
MJExtension:不需要强制继承任何类
7. DOM:一次性解析,小文件,GDataXML。
SAX:一个一个节点解析,自带的解析方法。NSXMLParser。
NSXMLParser *parser = [[NSXMLParser alloc]initWithData:_responseData];
parser .delegate = self;
[parser parse];阻塞性,解析完才会往下执行。
//某个元素解析完毕。
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
}
//解析到某个元素
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary<NSString *,NSString *> *)attributeDict{
}
//开始解析
-(void)parserDidStartDocument:(NSXMLParser *)parser{
}
//解析结束
-(void)parserDidEndDocument:(NSXMLParser *)parser{
}
8.XML转model
[xxx objectWithKeyValues:xxx];//MJExtension