您的位置:首页 > Web前端 > JavaScript

XML_JSON

2016-07-11 09:06 344 查看
XML

XML:可扩展标记语言,用来传输和储存数据

XML的语法规范

所有XML都须有关闭标签

<TextView></TextView>

<TextView/>

XML标签对大小写敏感

XML必须正确的嵌套

Android中XML的解析:

SAX(不常用)

DOM4J

PULL

DOM4J

DOM解析是把整篇XML文档都加在到内存中,然后使用DOM相关的API对某个或某些标签进行增删改查

PULL

PULL解析是使用事件驱动的方式,边读取边解析。当PULL解析器遇到文档中的某个节点时,

都会触发相应事件,我们可以捕获这些事件,并且在该时间点解析相关内容。

DOM4J比PULL解析浪费资源,但是API设计合理、简单。

PULL比较适合较大的XML文档解析。
DOM4J可以把文档内容都装入内存,然后可以获取
任意的标签及标签属性、文本等内容。

如何使用DOM4J解析XML?
1>导入jar包。
2>获取Document对象。
3>调用Document.getRootElement()获取根节点。
4>调用Element对象的相关API解析xml文件。

最常用的API:
SAXReader reader = new SAXReader();
Document doc = reader.read(...);
e=doc.getRootElement()
e.elements()  获取子标签集合
e.iterator()  获取迭代子标签的迭代器
e.getName()   标签名
e.getText()   标签文本
e.getTextTrim()  ....
......

PULL:
PULL解析是使用事件驱动的方式,边读取边解析。
当PULL解析器遇到文档中的某个节点时,都会触发
相应事件,我们可以捕获这些事件,并且在该时间
点解析相关内容。

如何使用PULL的方式解析xml?
1>创建xmlpull解析器:
XmlPullParser parser = Xml.newPullParser();
parser.setInput(is);
2>获取事件类型,并且配合while循环,不断驱动事件
并且解析文档内容:
int type=parser.getEventType();
while(type != XmlPullParser.END_DOCUMENT){
根据事件类型解析文档
向后继续驱动事件
type = parser.next();
}
JSON
JSON是一款轻量级的数据交换格式

<user>
<name>zs</name>
<age>21</age>
<gender>M</gender>
<aihao>吃</aihao>
<aihao>喝</aihao>
<aihao>玩</aihao>
<aihao>乐</aihao>
<school>
<name>tarena</name>
<loc>bj</loc>
</school>
</user>

{
"name":"zs",
"age":21,
"gender":"M",
"aihao":["吃","吃","吃","吃"],
"school":{
"name":"tarena",
"loc":"bj"
}
}

解析JSON需要两个类:
JSONObject : 描述一个JSON对象  {}
JSONArray : 描述一个JSON数组  []

如何解析JSONObject:
String json={
"name":"zs",
"age":21,
"gender":"M",
"aihao":["吃","吃","吃","吃"],
"school":{
"name":"tarena",
"loc":"bj"
}
}

JSONObject obj = new JSONObject(json);
String name=obj.getString("name");
obj.getInt("age");
JSONArray ary=obj.getJSONArray("aihao");
obj.getJSONObject("school").getString("loc");

解析JSONArray:
ary.length()  数组长度
ary.getString(0)  获取下标为0的字符串

["", 234, true, "", 2342]
ary.getInt(1)

[{},{},{},{},{},{}]

for(int i=0; i<ary.length(); i++){
ary.getJSONObject(i);
......
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml json