XML和JSON解析笔记

XML -> 1. sax  2.Dom

JSON解析  在IOS5.0以后提供NSJSON  在5.0之前用SBJSON和JSONKit

本讲内容

1.解析的基本概念

2.XML数据结构

3.JSON数据结构

4.两种数据结构的优缺点

解析: 从事先规定好的格式中提取数据

解析的前提: 提前约定好格式, 数据提供方按照格式提供数据,数据获取方则按照格式获取数据

XML基本概念

可扩展标记语言

功能:

数据交换 Web服务  内容管理

XML数据结构的语法

一对尖括号代表一个节点,或者标签

只有一个根节点

节点可以互相嵌套

没有子节点的节点称为叶子节点

<root>  根节点

<room_list> 子节点

<room>

<room_id>100101010</room_id>

<room_name>湖湾西区标准间</room_name>

<room_price>1200</room_price>

</room>

</room_list>

</room>

JSON数据结构

轻量级的数据交换格式,采用完全独立于语言的文本格式,被称为理想的数据交换语言

数据类型: 字符串 数字 BOOL 字典 数组

字典以"{"  "}"开始和结束 键和值用": "隔开  多个键值用","隔开

数组以"[ "  " ] "   中间是数据  以","分隔

使用JSONKit 进行JSON解析

#pragma mark -
#pragma mark 解析JSON

//解析JSON
-(void)parserJson
{
    NSString * path = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"];
    //从某个路径里面获取内容
    NSData * data = [NSData dataWithContentsOfFile:path];

    NSError * error = nil;
    NSMutableArray * arr = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

    NSLog(@"arr == %@",arr);

    NSData * data2 = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error];

    NSString * str = [[[NSString alloc] initWithData:data2 encoding:NSUTF8StringEncoding] autorelease];

    NSLog(@"str == %@",str);
 }

-(NSString *)reParserJson{
    NSMutableDictionary * dic=[NSMutableDictionary dictionary];
    [dic setObject:@"hua" forKey:@"1"];
    NSError * error=nil;
    NSData * data=[NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error];
    NSLog(@"data==%@",data);
    NSString * str=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"str==%@",str);

    return str;
}

SAX解析  Simple API for XML

基于事件驱动的解析方式, 逐行解析数据 (采用协议回调机制)

NSXMLParser

是由IOS自带的XML解析类 采用SAX方式解析数据

解析过程由NSXMLParserDelegate协议方法回调

解析过程: 开始标签 -> 取值 ->结束标签 -> 取值

SAX 解析相当于打印

DOM解析相当于复印

XML和JSON解析笔记

时间: 2024-08-02 05:17:33

XML和JSON解析笔记的相关文章

XML和JSON解析

待完善 XML和JSON解析,布布扣,bubuko.com

json解析笔记

就算 我把 一个对象的 属性 设置 为 "", 空字符串,但如果服务端返回的数据 ShareForUser [wid=1953319, SSID=WPS-Dongle, BSSID=00:12:5F:09:5E:84, addr=福建省厦门市思明区望海路31, wifiType=0, wifiAlias=null] 中 为null,那么 wifiAlias 为 null, 如果 打印没有try catch 的话,会直接崩溃 json解析笔记,码迷,mamicode.com

XML和JSON解析的区别

XML和JSon是ios解析文件的两种形式, 两种方法各有千秋. 1>. XML分为SAX和DOM两种方式 SAX是按顺序逐行读取文件, 查找到符合条件的内容时就会停止, 而DOM是讲内容一次性全部读取到内存中建立一个树状结构, 所以DOM不适合读取大型文件. DOM的弱点就是SAX的优点.SAX不必将所有内容添加到内存中, 但是他对文件按顺序读取一遍, 所以就导致了他不能对文件随意读取和修改,而DOM的树状结构可以对文件随意读取和修改. SAX DOM 按顺序(逐行)读取文件        

Xml 和Json解析

// //  ViewController.m //  Lesson_15_XML解析 // //  Created by 李洪鹏 on 15/7/20. //  Copyright (c) 2015年 李洪鹏. All rights reserved. // #import "ViewController.h" #import "studentModel.h" #import "GDataXMLNode.h" #import "JSO

使用原生JS发送AJAX请求(XML,JSON解析)

mybutton.addEventListener('click', (e) => { let request = new XMLHttpRequest() request.onreadystatechange = () => { if(request.readyState === 4) { console.log('请求完毕') if(request.status >= 200 & request.status <= 300) { console.log('请求成功')

Demo XML 、 JSON 解析 AND 网络HTTP请求

有道云笔记分享:http://note.youdao.com/share/?id=7950b949a5017a698a9ecc95bc250ec5&type=note 后台服务端:C#.服务器搭建+公网发布. 前端Cocos2d-x(C++)可交叉编译到 应用+游戏开发 coder:倪新生 Date:2015-07-30 Email:[email protected]

两种常用的数据交换格式:XML和JSON

不同编程语言之间的数据传输,需要一种通用的数据交换格式,它需要简洁.易于数据储存.快速读取,且独立于各种编程语言.我们往往传输的是文本文件,比如我们都知道的csv(comma seperated values)格式. 而在互联网上,传输数据往往有很多层次的结构,并非矩阵形态(m×n)那么简单.常见的有xml.json.yaml等等.其中,yaml是"yaml ain't markup language"的递归缩写,即各单词首字母组合恰为第一个词:而yaml也可理解成yet anothe

UI学习笔记---第十六天XML JSON解析

一.解析的基本概念 从事先规定好的格式中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据 常见解析方式XML解析JSON解析 二.XML:可扩展标记语言 XML数据格式的功能:数据交换 web服务  内容管理  用作配置文件 一对标签称为一个节点  节点可以包含节点   没有子节点叫叶子节点  只有一个根节点  节点可以相互嵌套 三.进行XML解析时使用到的SAX工具 SAX:Simple API for XML  基于事件驱动的解析方式,逐行解析数据.(

多线程与网络之JSON和XML数据的解析

*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: pointer; position: absolute