一、Json数据解析;二、XML数据解析
一、1、Json一共有两种数据结构,对象和数组
1)一种是以(key/value)对形式存在的无序的jsonObject对象,在花括号{}里面,例如:{"msg":
"success","errorCode":
0,"sessionId":
"688102860d1aa60-b772-46d4-b510-506221738d33"
}
key值必须是String类型,value值可以是String、number、object、array等数据类型。
2)另一种是有序的value的集合,即jsonArray,数组是value的有序集合,数组[],例如:"productCodes":
["WXZX","TCTHCS","TCTH","WXZXCP","TCGJJP"]
2、json对象在花括号中{},包含多个名称/值对;json数组在方括号中[],数组可以包含多个json对象,例如:
"reqPassenger":
[ {
"passengerCnt": 1,"passengerType": "ADT" },{ "passengerCnt":
1,"passengerType": "CHD" } ]
3、Java实现解析JSON字符串,jar包:com.alibaba.fastjson
复杂JSON字符串
Java解析复杂JSON字符串
二、1、XML数据:可扩展标记语言(Extensible Markup
Language),XML是W3C的推荐标准,被设计为传输和存储数据,HTML旨在显示信息,而XML旨在传输信息。
XML数据用途:简化数据共享、简化数据传输、简化平台的变更、XML独立与硬件软件和应用程序,使得数据更可用。
2、XML中的属性、元素、文本
XML文档
从上图1)XML文档表示:Document
document =
reader.read(newFile(filePath));
2)
OriginDestinationOptions是父元素,Element
root =
document.getRootElement();
3)OriginDestinationOption一级元素,Element
origine =
root.element("OriginDestinationOption");
4)
ElapsedTime是一级节点的属性名,Stringelapse
=
origine.attributeValue("ElapsedTime");
5)
只有MarriageGrp有文本值,String marr =
node.getText();
此处用dom4J进行解析
打印某一级元素的所有属性名和属性值
3、java解析XML结构数据
1) XML DOM(xml Document Object
Model)文档对象模型,定义了访问和操作XML文档的标准方法。
2)XML的解析方式分为四种:DOM解析;SAX解析;JDOM解析;DOM4J解析
Dom解析是将xml文件全部载入到内存,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,与平台无关,java提供的一种基础的解析XML文件的API,理解较简单,但是由于整个文档都需要载入内存,不适用于文档较大时。SAX解析基于事件驱动,逐条解析,适用于只处理xml数据,不易编码,而且很难同时访问同一个文档中的多处不同数据。JDOM解析简化与XML的交互并且比使用DOM实现更快,仅使用具体类而不使用接口因此简化了API,并且易于使用。DOM4J解析:JDOM的一种智能分支,功能较强大,建议熟练使用。