JSON
具体形式
以key-value的形式存储数据
key为字符串
value取值为boolean,String,Objiect,null,数组,number
以{ 开头 以}结尾
JSON中的数组以 [ 开头 以 ] 结尾
Object以 { 开头 以 } 结尾
解析方式
GJSON
转化为字符串
GJSON json=new GJSON().toJson(对象名)
JSON的节点对象
JsonElement
JsonPrimitive
基本数类型的节点对象
JosonNull
空节点对象
JsonObject
对象向数据类型的节点对象
value的取值对应java的object对象
JsonArray
数组类型的节点对象
value的取值对应java的List及其子对象
解析对象
Json解析成java对象
new Gson();.fromJson(json,类名.class)
Json解析成List
new Gson().fromJson(jison,new TypeToken<List<类名>>( ){}.getType());
解析成map
Map<String,类名> map=gson.fromJson(json,newTypeToken<Map<String,类名>>(){ }.getType);
节点解析
1.获得解析器
PsonParser parser=new JsonParser()
2.获取跟节点
JsonElement element=parser.parser(json);
3.根据文档判断跟节点属于什么类型的Gson节点对象
JsonObject root=element.getAsJsonObject( );
4.取得节点下的某个节点的value
JsonPrimitive flag=root.getAsPrimitive("flag");
boolean flag=flagJson.getAsBoolean( );
JsonObject dataJson=root.getAsJsonObject("data");
fastjson
转化为json字符串
String jsonSting=JSON.toTSONString(object);
解析成对象
JavaBean: Person person=JSON.parseObject(jsonString,Person.class)
List : List listParse=JSON.pareArray(jsonString,Person.class)
List:List liString=JSON.pareseArray()jsonString,String.class)
List<Map> List<Map> listMap=JSON.parseObject(jsonString,new TypeReference<List<Mao>>(){ })
XML(可扩展标记语言)
特点
仅关注数据本身
标记可扩展,可自定义
作用
存储,交换数据
配置
语法规范
声明
<?xml version="1.0"?>
<?xml version=encoding="UTF-8"?>
<?xml version="1.0" standalone="yes"?>
<?xml version="1.0" encoding="UTF-8" standallone="yes"?>
注
<? xml声明开始字符
xml 表示这是一份xml文件
version 版本默认"1.0"
standalone 表示xml文件是否独立的
enconding 指定文件的字集编码
?> xml声明结束字符
有且只有一个跟元素
严格区分大小写
属性值用引号(单引或双引)
标记成对
空标记关闭
元素正确嵌套
元素命名规则
名称可以包含字母,数字或其他可见字符
不能以数字开头
不能以xml之类开头
不能有空格
不能有冒号(冒号留给命名空间使用)
实体
内置实体
<<
@gt;>
&&
""
''
自定义实体
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY X2 "呵呵">
]>
构成
元素
属性
实体
PCDATA
被解析的字符数据
CDATA
用于把整段文本解释为纯文本
CDATA节(character data)
解析
DOM 解析过程
1.建立 DocumenBuilderFactory:DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance()
2.建立DoucumentBuilder:DocumentBuilder builder=factory.new DocumentBuilder();
3.建立Document:Document doc=builder.parse(“要解析的文件路径”)
4.建立NodeList:Nodelist nl=doc.getElementBytagName(“读取节点”)
5.进行XML信息读取
SAX解析
1创建解析工厂
SAXParserFactory factory=SAXParserFactory.newInstance();
2获取解析器
SAXParser parser=factory.newSAXParser();
3SAX解析器,继承DefaultHandler
String path=new File(“resource/xxx.xml”).getAbsolutePath();
4解析
parser.parse(path,new MySaxHandler())
DOM4J
1.得到要解析的文档
File file=new File();
2.得到解析器
SAXReader reader=new SAXReader();
3.通过解析器将文件对象转成Document对象
Documen documen=reader.read(file)
4.得到当前文档的根节点
Element root=document.getRootElement()
5.根据根节点得到跟节点所有子节点
Iterator iter=root.elementIterator();
while(iter.hasNext()){
Element name=iter.next();
System.out.println(name.getNamet());
System.out.println(“value=”+name.getText());
}
创建
1.使用DocumentHelper来创建Document对象
Document documen=DocumentHelper.createDocument();
2.创建元素并设置关系
Element person=document.addElement(“person”);
Element name=person.addElement(“name”);
Element age=person.add.Element(“age”)
3设置文本
name.setText(“xxx”);
age.setText(“10”)
4.创建格式化输出器
Outputformat of=OutputFormat.createPrettyPrint();
of.setEncoding(“utf-8”)
5.输出到文件
File file=new File(“src/outputdom4j.xml”)
XMLWriter writer=new XMLWRiter(new FileOutStream(new File(file.getAbsolutePath())),of);
写出
writer.writer(coucument);
writer.fiush();
writer.close();