IOS-XML&JSON解析
2567 ワード
一。XML解析
1.ネットワークデータを取得し、XMLParser解析器に配置する。
<NSXMLParserDelegate>
一般的には、以下の方法が必要です。(AndroidのxmlPaser解析のような)
JSON解析は、NSJSONSerialization類の方法で解析できます。
1.ネットワークデータを取得し、XMLParser解析器に配置する。
NSString *urlStr=@"http://api.zbw.vc/api/MobileDesktop/GetUpdateAdvertisinToMobileIndex?ct=xml";
NSURL *url=[NSURL URLWithString:urlStr];
NSXMLParser *parser=[[NSXMLParser alloc] initWithContentsOfURL:url];
2.解析代理を設定します。 [parser setDelegate:self];
3.解析を開始します [parser parse];
4.上記では、エージェントは自身と定義されている。この代理店は <NSXMLParserDelegate>
一般的には、以下の方法が必要です。(AndroidのxmlPaser解析のような)
#prag mark - 、
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
#prag mark - 、
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
#prag mark - 、
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
#prag mark -
-(void)parser:(NSXMLParser *)parser validationErrorOccurred:(NSError *)validationError
#prag mark - 、1
-(void)parserDidStartDocument:(NSXMLParser *)parser
#prag mark - 、1
-(void)parserDidEndDocument:(NSXMLParser *)parser
二番目です。JSON解析JSON解析は、NSJSONSerialization類の方法で解析できます。
//
NSURL *url=[NSURL URLWithString:@"http://api.zbw.vc/api/MobileDesktop/GetUpdateAdvertisinToMobileIndex?ct=json"];
NSData *data=[NSData dataWithContentsOfURL:url];
// Json array
NSArray *array=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
//
NSArray *pathDir=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSAllDomainsMask, YES);
NSString *path=[pathDir[0] stringByAppendingPathComponent:@"ad.plist"];
// NSLog(@"%@",array[0]);
[array writeToFile:path atomically:YES];
//
NSMutableArray *arr2=[NSMutableArray array];
for (NSDictionary *dic in array) {
CSZWallpaper *wallPaper=[[CSZWallpaper alloc] init];
wallPaper.imageUrl=[dic objectForKey:@"imageurl"];
wallPaper.isUpdate=[((NSNumber *)[dic objectForKey:@"isupdate"]) integerValue];
wallPaper.type=[((NSNumber *)[dic objectForKey:@"type"]) integerValue];
[arr2 addObject:wallPaper];
}
NSLog(@" :>>%@",arr2);