app开发数据格式:1.JSON 2.XML
我了解的情况是基本上都采用Json格式的数据,方便、灵巧
一、JSON解析
JSON解析相对于XML来说很简单,很早之前使用SBJSON解析,之后OC自带解析类,NSJSONSerialization
//获取文件路径
NSString *path = [[NSBundle mainBundle] pathForResource:@"ActivityList" ofType:@"txt"];
//将文件数据读入data中
NSData *data = [NSData dataWithContentsOfFile:path];
//用系统方法NSJSONSerialization解析,得出最外层的数据类型
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
二、 XML解析
XML原本是使用在网页方面的;可变性使其不好解析的原因
一、什么是可扩展标记语言?
可扩展标记语言是一种很像超文本标记语言的标记语言。
- 它的设计宗旨是传输数据,而不是显示数据。
- ** 它的标签没有被预定义。您需要自行定义标签。--- 可变性** *
- 它被设计为具有自我描述性。
- 它是W3C的推荐标准。
1、导入第三方解析工具:GDataXMLNode
2、在工程中的Bulid Phases先添加libxml2.dylib动态库
3、在工程中的build settings找到Header Search Path项,添加/usr/include/libxml2
//获取文件路径
NSString *path = [[NSBundle mainBundle] pathForResource:@"Cartoon" ofType:@"xml"];
//将文件数据读入data中
NSData *data = [NSData dataWithContentsOfFile:path];
//创建GDataXMLDocument对象,此时XML文件内所有节点以树的形式存在GDataXMLDocument
GDataXMLDocument *dom = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
//获取根节点,根节点里面包含了XML得所有信息
GDataXMLElement *rootElement = dom.rootElement;
// NSLog(@"rootElement-->%@",rootElement.name);
for (GDataXMLElement *subElement in rootElement.children) {
// NSLog(@"subElement-->%@",subElement.name);
for (GDataXMLElement *child in subElement.children) {
// NSLog(@"child--->%@",child.name);
Cartoon *cartoon = [[Cartoon alloc] init];
for (GDataXMLElement *subChild in child.children) {
[cartoon setValue:subChild.stringValue forKey:subChild.name];
// NSLog(@"subChild-->>>>%@",subChild.name);
}