javaweb-xml解析&json解析
来源:互联网 发布:网络推广赚钱 编辑:程序博客网 时间:2024/05/22 17:53
1、myeclipse 破解版安装
按照文档操作即可
2、myeclipse 的一些快捷方式
ctrl + 1 万能键
ctrl + / 提示,快速补全代码
ctrl + shitf + f 代码格式化
ctrl + s 保存
alt + 方向键 向上或向下移动一行代码
ctrl + alt + 方向键 快速复制一行代码
ctrl + d 快速删除一行
长按ctrl 查看源代码
ctrl + m 全屏
ctrl + shift + o 快速导包
ctrl + t 快速查看类结构
ctrl + shift + x 变大写
ctrl + shift + y 变小写
3、junit测试
可以在方法上边添加 @Test 注解,用来表示此方法是测试方法,省去了再创建main方法的步骤
Assert断言可以判断测试的结果是否和期待的结果是一样的
方法测试步骤
a、添加junit jar包,myeclipse已经集成好了
b、在测试方法的上边加上一个注释 @Test 即可
c、添加断言方法,判断结果是否是预期的结果
4、注解
a、注解不是注释
b、注解是一种标记,加上什么标记就做什么事情
c、jdk1.5之后提供3种注解
@SuppressWarnings("all") 压制警告
@Deprecated 代表过时的
@Override 重写父类方法
5、xml简介
a、什么是xml
xml是一种可扩展标记语言,全称是(EXtensible Markup Language)
xml中没有预定义标签,可以自己定义标签
html中的标签是定义好的
b、xml的设计宗旨是什么
用来传输数据和存储数据(html是用来显示数据的)
c、xml的标准(w3c推荐的标准)
d、xml可以用来做配置文件 android工程中的清单文件就是xml文件
总的来说:xml可以用来存储和传输数据,同时也可以用作配置文件
6、xml的声明
a、格式是固定的,以后在开发软件中操作直接创建xml文件自动生成
b、xml文件必须有且只有一个根元素
c、要想验证xml文件是否正确,需要在浏览器中打开,如果能看到说明正确
d、encoding="utf-8" 表示的是浏览器查看的编码,如果和编写程序的编码不同,会出现乱码情况
7、xml语法
a、xml标签必须关闭
b、xml标签对大小写敏感
c、标签必须正确嵌套
d、必须有一个根元素
e、xml元素的属性必须加引号
f、> < "" '' 一些特殊意义的字符,需要进行转义
g、xml注释 <!-- 里边写的是注释 -->
h、CDATA区,这里的内容不会被解析
<![CDATA[ 里边的内容不会被解析 ]]>
i、xml中的空格会被保留,多个空格会保留一个
8、xml的三种解析
DOM解析
SAX解析
StAX解析(xmlpull解析)
A: dom解析: 文档对象模型(Document Object Model),这个是官方推荐的标准
dom原理: 把要解析的xml文件全部加载到内存中,在内存中形成一个数结构
注: dom解析把xml元素 属性 文本都当成是节点
优点: 可以进行增删改查操作
缺点: 如果xml文件过大,可能出现内存泄漏
实现思路:
通过工厂获取解析器实例,拿到解析器以后解析xml
B: SAX解析
sax解析思想,一边解析 一边处理 一边释放内存
sax解析是一个自动解析的过程
C: xmlpull解析
原理: 类似sax解析,一边解析 一边处理 一边释放内存
xmlpull 解析是android内置的
xmlpull解析和sax解析不同,xmlpull解析可以自己控制解析
代码实现
a. 导入xmlpullparser相关的jar包
b. 具体代码实现
什么是 json
json是一种轻量级的数据交换格式
json 的特点
数据格式更易于阅读,数据量比较小
json格式有2种
一种是: 对象,里边存放的是键值对 {name:'张三', age:20}
一种是: 数组,里边可以存放对象 [{name:'张三', age:20}, {name:'李四', age:30}]
10、json解析
json解析的代码实现
按照文档操作即可
2、myeclipse 的一些快捷方式
ctrl + 1 万能键
ctrl + / 提示,快速补全代码
ctrl + shitf + f 代码格式化
ctrl + s 保存
alt + 方向键 向上或向下移动一行代码
ctrl + alt + 方向键 快速复制一行代码
ctrl + d 快速删除一行
长按ctrl 查看源代码
ctrl + m 全屏
ctrl + shift + o 快速导包
ctrl + t 快速查看类结构
ctrl + shift + x 变大写
ctrl + shift + y 变小写
3、junit测试
可以在方法上边添加 @Test 注解,用来表示此方法是测试方法,省去了再创建main方法的步骤
Assert断言可以判断测试的结果是否和期待的结果是一样的
方法测试步骤
a、添加junit jar包,myeclipse已经集成好了
b、在测试方法的上边加上一个注释 @Test 即可
c、添加断言方法,判断结果是否是预期的结果
代码体现
import junit.framework.Assert;import org.junit.Test;/** *junit方法测试,并使用断言判断结果是否是预期结果 */public class JunitTest {@Testpublic void junitTest(){// 定义2个变量int i = 10;int j = 20;// 定义一个和int result = i - j;// 使用断言assert判断是否和预期结果相同Assert.assertEquals(30, result);}}
4、注解
a、注解不是注释
b、注解是一种标记,加上什么标记就做什么事情
c、jdk1.5之后提供3种注解
@SuppressWarnings("all") 压制警告
@Deprecated 代表过时的
@Override 重写父类方法
5、xml简介
a、什么是xml
xml是一种可扩展标记语言,全称是(EXtensible Markup Language)
xml中没有预定义标签,可以自己定义标签
html中的标签是定义好的
b、xml的设计宗旨是什么
用来传输数据和存储数据(html是用来显示数据的)
c、xml的标准(w3c推荐的标准)
d、xml可以用来做配置文件 android工程中的清单文件就是xml文件
总的来说:xml可以用来存储和传输数据,同时也可以用作配置文件
6、xml的声明
a、格式是固定的,以后在开发软件中操作直接创建xml文件自动生成
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8" ?> <student><name>张三</name><age>20</age> </student></span>
b、xml文件必须有且只有一个根元素
c、要想验证xml文件是否正确,需要在浏览器中打开,如果能看到说明正确
d、encoding="utf-8" 表示的是浏览器查看的编码,如果和编写程序的编码不同,会出现乱码情况
7、xml语法
a、xml标签必须关闭
b、xml标签对大小写敏感
c、标签必须正确嵌套
d、必须有一个根元素
e、xml元素的属性必须加引号
f、> < "" '' 一些特殊意义的字符,需要进行转义
g、xml注释 <!-- 里边写的是注释 -->
h、CDATA区,这里的内容不会被解析
<![CDATA[ 里边的内容不会被解析 ]]>
i、xml中的空格会被保留,多个空格会保留一个
8、xml的三种解析
DOM解析
SAX解析
StAX解析(xmlpull解析)
A: dom解析: 文档对象模型(Document Object Model),这个是官方推荐的标准
dom原理: 把要解析的xml文件全部加载到内存中,在内存中形成一个数结构
注: dom解析把xml元素 属性 文本都当成是节点
优点: 可以进行增删改查操作
缺点: 如果xml文件过大,可能出现内存泄漏
实现思路:
通过工厂获取解析器实例,拿到解析器以后解析xml
<span style="white-space:pre"></span> <span style="font-size:18px;">/** <span style="white-space:pre"></span> *使用dom解析xml文件 <span style="white-space:pre"></span> *并获取name标签的文本内容<span style="white-space:pre"></span> */public class DomTest {@Testpublic void domTest() throws Exception{// 获得工厂DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();// 获得解析器DocumentBuilder builder = factory.newDocumentBuilder();// 解析xml public Document parse(String uri)Document books = builder.parse("bookstore.xml");// 获取标签名为name的node集合NodeList nodeList = books.getElementsByTagName("name");// 遍历集合,获取每一个元素for(int i = 0; i < nodeList.getLength(); i++){Node item = nodeList.item(i);// 获取内容String name = item.getTextContent();System.out.println("name : " + name);}}}</span>
B: SAX解析
sax解析思想,一边解析 一边处理 一边释放内存
sax解析是一个自动解析的过程
优点: 不会出现内存泄漏问题
缺点: 不能进行 增 删 改 操作,可以进行 查 操作
代码实现步骤
1. 获取工厂
2. 通过工厂获取解析器
2.1. 准备事件处理器
3. 解析xml
<span style="white-space:pre"></span><span style="font-size:18px;">public class SaxTest {@Testpublic void SaxTest() throws Exception{// 获取工厂SAXParserFactory factory = SAXParserFactory.newInstance();// 通过工厂获取解析器SAXParser parser = factory.newSAXParser();// 解析xml文件 public void parse(String uri, DefaultHandler dh)// 需要传入一个 DefaultHandler// 创建 DefaultHandler的子类// 解析文件parser.parse("bookstore.xml", new MyDefaultHandler());}class MyDefaultHandler extends DefaultHandler{// 重写父类方法// 接收文档开始通知@Overridepublic void startDocument() throws SAXException {super.startDocument();// 打印方法是为了能够看到效果System.out.println("文档开始");}// 接收元素开始通知@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {super.startElement(uri, localName, qName, attributes);System.out.println("startElement");}// 接收元素中字符数据的通知。@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {super.characters(ch, start, length);System.out.println("characters");}// 接收元素结束通知@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {super.endElement(uri, localName, qName);System.out.println("endElement");}// 接收文档结束通知@Overridepublic void endDocument() throws SAXException {super.endDocument();System.out.println("文档结束");}}}</span>
C: xmlpull解析
原理: 类似sax解析,一边解析 一边处理 一边释放内存
xmlpull 解析是android内置的
xmlpull解析和sax解析不同,xmlpull解析可以自己控制解析
代码实现
a. 导入xmlpullparser相关的jar包
b. 具体代码实现
<span style="font-size:18px;">/** *使用xmlpull解析,并把解析后的内容添加到集合,最后遍历集合打印出信息 * *思路: * 1. 定义一个Student类,用来封装xml里的内容 * 2. 创建List集合对象,用来封装student对象 * 3. 获取工厂 * 4. 通过工厂获取解析器 * 5. 解析文件,并把符合条件的内容添加到相应的对象或集合中 * 6. 遍历集合,输出信息 */public class XmlPullTest {@Testpublic void xmlPull() throws Exception{// 创建集合对象和学生类对象List<Student> lists = null;Student student = null;// 获取工厂XmlPullParserFactory factory = XmlPullParserFactory.newInstance();// 通过工厂获取解析器XmlPullParser parser = factory.newPullParser();// 解析xml文件parser.setInput(new FileInputStream("student.xml"), "utf-8");int event = 0;while((event = parser.getEventType()) != XmlPullParser.END_DOCUMENT){// 解析中使用switch进行2次判断,一个是是否是元素开始,另一个是是否是元素结束switch(event){case XmlPullParser.START_TAG:// 判断是否是students元素开始,如果是,就创建list集合if("students".equals(parser.getName())){lists = new ArrayList<Student>();}else if("student".equals(parser.getName())){// 如果是以student开始,创建对象,并把id添加进对象中student = new Student();String id = parser.getAttributeValue(0);// 添加到对象student.setId(id);}else if("name".equals(parser.getName())){String name = parser.nextText();student.setName(name);}else if("age".equals(parser.getName())){int age = Integer.parseInt(parser.nextText());student.setAge(age);}break;case XmlPullParser.END_TAG:// 如果结束元素是"student"标签,就把对象添加到集合中if("student".equals(parser.getName())){lists.add(student);}break;}// 一直解析parser.next();}// 遍历集合,并把信息打印出来for (Student s : lists) {System.out.println(s);}}}</span>9、JSON
什么是 json
json是一种轻量级的数据交换格式
json 的特点
数据格式更易于阅读,数据量比较小
json格式有2种
一种是: 对象,里边存放的是键值对 {name:'张三', age:20}
一种是: 数组,里边可以存放对象 [{name:'张三', age:20}, {name:'李四', age:30}]
10、json解析
json解析的代码实现
<span style="font-size:18px;">public class JsonTest {@Testpublic void jsonTest() throws Exception{// json有2中格式// 第一种格式: 对象String jsonObject = "{name:'张三', age:18}";// 创建JSONObject对象JSONObject obj = new JSONObject(jsonObject);// 调用方法,通过键找值String objName = obj.getString("name");System.out.println("name: " + objName);int objAge = obj.getInt("age");System.out.println("age: " + objAge);// 第二种格式: 数组String jsonArray = "[{name:'张三', age:18},{name:'李四', age:20}]";// 创建JSONArray对象JSONArray arr = new JSONArray(jsonArray);// 遍历数组,获取每个对象中的值for(int i = 0; i < arr.length(); i++){JSONObject jsonArrObj = arr.getJSONObject(i);// 通过键找值String arrName = jsonArrObj.getString("name");int arrAge = jsonArrObj.getInt("age");System.out.println("arrName: " + arrName);System.out.println("arrAge: " + arrAge);}}}</span>
0 1
- javaweb-xml解析&json解析
- JSON解析,XML解析
- JSON解析、XML解析
- XML解析 JSON解析
- XML解析、Json解析
- JSON解析/XML解析
- JavaWeb-XML解析
- JavaWeb - XML解析 - DOM
- JavaWeb - XML解析 - SAX
- JavaWeb - XML解析 - JDOM
- JavaWeb - XML解析 - DOM4J
- Javaweb Dom4j解析XMl
- javaWeb之XML解析
- XML解析 与 JSON 解析
- JSON解析和XML解析
- JSON解析和XML解析
- XML解析、JSON解析入门
- javaWeb的XML-pull解析。
- 2015互联网+农业(B2B)报告:10万亿规模的市场,还有大把的机会
- Android Studio 快捷键整理分享
- java分配内存的一些感悟
- 函数的输入参数引用为什么要加const
- Scala中的None,Nothing,Null,Nil
- javaweb-xml解析&json解析
- 初始化网站css样式
- Android 读取网页源码和下载图片
- Java Exception(Comparison method violates its general contract)
- mac IDEAJ 恢复默认配置
- 那些关于程序员的段子
- XPath技术
- Docker创建mysql镜像
- C# 简陋的远程工具