JSON XML

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之类开头
			不能有空格
			不能有冒号(冒号留给命名空间使用)
		实体
			内置实体
				&lt;<
				@gt;>
				&amp;&
				&quot;"
				&apos;'
			自定义实体
				<?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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值