自己写的XML/JSON 解析全部代码

处理XML按照如下的过程进行

NSData *xmlData = [[NSData alloc] initWithContentsOfFile:xmlFilePath];

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];

以上的代码是通过XML文件创建NSXMLParser对象,当然也可以直接通过URL创建:

NSURL *xmlUrl = [NSURL URLWithString:@"http://www.w3school.com/xml/note.xml"];

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlUrl];

指定NSXMLParser对象的委托对象,并实现委托协议

xmlParser.delegate = NSXMLParserDelegate;

解析XML 主要分为SAX和DOM,我主要使用NSXMLParser
这种属于SAX解析;首先我们需要新建一个XML文件

自己写的XML/JSON 解析全部代码_第1张图片

下面看看解析的代码:

自己写的XML/JSON 解析全部代码_第2张图片

运行效果截图:

自己写的XML/JSON 解析全部代码_第3张图片

不知道怎么回事为啥我的中文不能显示我用的是UTF-8的编码啊!

下面看看JSON数据解析,因为没有网络数据所以只能自己写一个JSON数据格式啦!新建一个JSON 数据,JSON数据主要有数组和字典两种方式来组合:

自己写的XML/JSON 解析全部代码_第4张图片

JSON 数据的解析有多种方式还有一些第三方的库比如:SBJSON 等但是我在使用的NSJSONSerialization解析JSON 数据,下面看看JSON数据的解析代码和解析结果:

自己写的XML/JSON 解析全部代码_第5张图片
自己写的XML/JSON 解析全部代码_第6张图片

JSON 数据的解析结果:

自己写的XML/JSON 解析全部代码_第7张图片

JSON 解析中最常见的是序列化和反序列化小编在这里就使用了序列化和反序列化下面小编说一下这个JSON具体的解析过程:

程序首先加载personList.json文件,获取JSON 数据,然后调用NSJSONSerialization类的dataWithJSONObject: options:error:方法将JSON 数据反序列化为对象。由于JSON数据可知顶层对象是一个数组,所以我们将其转型为NSArray.每一个数组成员是一个字典,所以可以通过调用字典的objectForKey:方法,传入键名即可获得对应的值。之后,程序有调用dataWithJSONObject: options:error:方法将对象序列化为JSON 数据,最后在NSData对象上- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;实例方法,将其写入到一个JSON的临时文件中。

你可能感兴趣的:(自己写的XML/JSON 解析全部代码)