美文网首页iOS开发
iOS-XML/JSON解析

iOS-XML/JSON解析

作者: inyourface | 来源:发表于2019-10-23 16:08 被阅读0次


一、XML解析

XML解析有两种方式:

        DOM:一次性将整个XML文档加载进内存,比较适合解析小文件;

        SAX:从根元素开始,按顺序一个元素一个元素的向下解析,适合大文件;


二、XML解析框架

原生框架:NSXMLParser:SAX解析方式

第三方框架:libxml2:支持DOM和SAX方式

                     GDataXML:DOM方式解析,基于libxml2

大文件:NSXMLParser、libxml2

小文件:GDataXML、NSXMLParser、libxml2

三、解析


SAX解析:实现<NSXMLPaserDelegate>

1.解析数据(反序列化)

NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];

 parser.delegate = self;

// 开始解析: parse方法是 阻塞的, 只有把解析完,才会 调用reloadData

[parser parse];

2.实现代理方法

// 开始解析

- (void)parserDidStartDocument:(NSXMLParser *)parser{ };

// 开始解析某个元素

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary<nsstring nsstring=""> *)attributeDict{ }

// 某个元素解析完毕

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{ }

// 结束解析

- (void)parserDidEndDocument:(NSXMLParser *)parser{  }

DOM解析:(GDataXMLDocument)

1.配置工作:

        (1)导入GDataXML文件。

2.解析数据(反序列化)

   2.1加载整个xml文档

 GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:kNilOptions error:nil];

     2.2 XML文档的根元素. 拿到根元素内部的 所有名称为video的子孙元素

NSArray *eles = [doc.rootElement elementsForName:@"video"];

     2.3 遍历操作子元素,拿到子元素中的属性

        for(GDataXMLElement *ele in eles)


一、JSON解析

苹果原生:NSJSONSerialization

第三方库:SBJSON、JSONKit、MJExtension

序列化:OC对象-->JSON/XML

反序列化:JSON/XML-->OC对象

二、解析


原生:

JSON数据 —> OC对象

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;

OC对象 —> JSON数据

+ (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;

OC对象是否可转

+ (BOOL)isValidJSONObject:(id)obj

JSONObjectWithData返回类型是id,可以用字典、数组接收,通过字典对应key访问数据

字典转JSON、JSON转字典、JSON转数组

相关文章

  • iOS-XML/JSON解析

    一、XML解析 XML解析有两种方式: DOM:一次性将整个XML文档加载进内存,比较适合解析小文件; SAX...

  • iOS-xml和json数据解析

    1 数据解析 在iOS开发中,常见的数据传输格式有两种:JSON和XML。目前JSON由于其体积小、传输速度快等优...

  • iOS-XML解析

    XML 解析方式: DOM:一次性将 XML 文档加载进内存,适合解析小文件 SAX:从根元素开始,按顺序元素解析...

  • iOS-XML解析

    SAX和DOM,NSXMLParser和GDataXML和ONOXML 基于不同的API有两种不同的解析方式: 1...

  • iOS-XML解析

    XML 解析:

  • JSON

    JSON解析(反序列化) JSON解析(序列化) JSON解析补充

  • Json解析方式

    1.传统的JSON解析 1.1 生成Json 1.2 解析Json 2.Gson解析Json 2.1生成Json ...

  • JSON解析数据

    JsonObject解析 和JSonArray解析: JSON创建和JSON解析: 一。效果图: 创建: 解析: ...

  • Swift 4 JSON 解析指南

    Swift 4 JSON 解析指南 Swift 4 JSON 解析指南

  • iOS中解析json格式数据的各种方法调用

    JSON解析的解析过程不重要,重要的是JSON解析之后对结果的处理JSON解析后是个dictionary,但是字典...

网友评论

    本文标题:iOS-XML/JSON解析

    本文链接:https://www.haomeiwen.com/subject/onvtvctx.html