读书笔记2,xml和json数据格式的解析
来源:互联网 发布:阿里巴巴排名优化工具 编辑:程序博客网 时间:2024/06/07 04:53
解析XML数据格式
1.Pull解析方式
.获取XmlPullParserFactory的实例
.借助以上实例获得XmlPullparser的对象
.调用XmlPullParser对象的setInput()方法设置好解析的内容
.通过XmlPullParser对象的getEventType()方法获取当前解析事件
.开始解析,
调用XmlPullParser对象的next()方法获取下一个解析事件
事件的常用常量有:XmlPullParser.START_TAG//开始解析某个节点,XmlPullParser.END_TAG//完成解析某个节点
调用XmlPullParser对象的getName()方法获取当前节点的名字
解析完成,getEventType()返回XmlPullParser.END_DOCUMENT常量
private void parseXML(String xml_str){ try { //获取XmlPullparserFactory对象 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); //获得XmlPullParser对象 XmlPullParser parser = factory.newPullParser(); //设置解析内容 parser.setInput(new StringReader(xml_str)); //获取当前的事件 int eventType = parser.getEventType(); //开始解析 while(eventType != XmlPullParser.END_DOCUMENT){ String name = parser.getName(); switch (eventType) { case XmlPullParser.START_TAG: //根据节点的名称进行操作 break; case XmlPullParser.END_TAG: //完成解析某个节点后的操作 break; default: break; } eventType = parser.next(); } } catch (Exception e) { e.printStackTrace(); } }2.SAX解析方式
.新建一个类继承自DefaultHandler并重写父类的五个方法,基本原理与Pull解析相同
public class MyHandler extends DefaultHandler { //开始解析Xml时调用 @Override public void startDocument() throws SAXException { super.startDocument(); } //完成解析时调用 @Override public void endDocument() throws SAXException { super.endDocument(); } //解析某个节点时调用 @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); } //完成解析某个节点时调用 @Override public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); } //获取节点内容时调用 @Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); }}
private void parseXMLWithSAX(String xml_str){ SAXParserFactory factory = SAXParserFactory.newInstance(); try { XMLReader reader = factory.newSAXParser().getXMLReader(); MyHandler handler = new MyHandler(); reader.setContentHandler(handler); //开始解析 reader.parse(new InputSource(new StringReader(xml_str))); } catch (Exception e) { e.printStackTrace(); } }解析JSON数据格式
1.JSONObject解析
.通过返回的字符串数据构造一个JSONObject对象
.通过JSONObject对象的一系列get方法获取指定名称的数据
json_ob.getJSONObject(String name);json_ob.getString(String name);json_ob.getInt(String name);json_ob.getDouble(String name);json_ob.getBoolean(String name);json_ob.getJSONArray(String name);.通过JSONArray对象的getJSONObject(int index)方法获取指定索引的JSON对象
2.GSON解析
根据JSON数据里的具体内容定义一个类,通过GSON的fromJson(String data,Class<?>)方法可以将这段数据解析为这个类的对象
根据JSON数据里的具体内容定义一个类,通过GSON的fromJson(String data,new TypeToken<List<Class<>?>>(){}.getType())方法可以将这段数据解析为这个类的集合
使用GSON需要添加依赖库
compile 'com.google.code.gson:gson:2.7'
阅读全文
0 0
- 读书笔记2,xml和json数据格式的解析
- Json数据格式和XML数据格式的分析
- 常用数据格式xml和json解析
- json数据格式,xml数据格式的区别和用法
- Json 数据格式的解析
- JSON数据格式的解析
- json和xml数据格式基于ajax的实现方式
- php用xml和json处理数据格式。
- json数据格式常用解析和封装方式
- xml解析和json解析的对比
- 通讯数据格式xml与json的区别
- JSON数据格式的解析与序列化
- JQuery 解析多维的Json数据格式
- Android中Json数据格式的解析
- json,xml数据格式校验
- spring mvc 接收json、xml 数据格式,自动解析成对象
- 数据格式转换,数据解析,实体类、json、map、xml
- android 解析json数据格式
- 线程练习
- 结构体的嵌套与返回
- 自定义hash高效去重
- OpenCV-摄像机模型与标定(一)
- 正确姿势定义可扩展dialog
- 读书笔记2,xml和json数据格式的解析
- 【Tensorflow 报错】struct.error: 'i' format requires -2147483648 <= number <= 2147483647
- HTTPS原理
- 极简的centos-git服务器搭建,供windows用户使用
- vue初始化动画加载
- Android:dagger2让你爱不释手-基础依赖注入框架篇
- JAVA反射基础
- 虚机磁盘扩展-lvm分区
- mina socket问题 求救大神................