XML与JSON学习归纳

	为了在不同系统,不同编程语音的不同软件间传输文件信息的时候能够互相便捷的识别文件,有了统一规范的XML,再进一步简便化,易于电脑,人和网络传输阅读的迭代的产物就是JSON。
	XML这种文件本质就是一种特殊格式要求的字符串,打个比喻就是被规定写作格式的毕业论文,以便别的电脑分类识别,来进行后续处理。
	XML的解析分为SAX解析,DOM解析。
	SAX是逐个逐条代码检索解析,不能同时访问不同部分的数据且无法得知当前元素的在整体文件中的位置的一种无法修改的只读文件。
	DOM是直接在内存中以文档树的形式加载,可以进行修改操作,且是整个文件一起读取,可以知道当前元素的相对位置,以及其他元素的位置。但是同一时刻维持的资源消耗更大。
	DOM解析的JAVA定制版本文档模型就是JDOM解析,在使用时使用了大量java的具体类,而不是接口。
	DOM4J则是JDOM一种分支,一种多功能集成的JDOM。
	JSON在格式上相对于XML更自由更简便,但是嵌套过多后
	XML格式:
	<express>
			<ID>abs123</ID>
			<site>40号</site>
			<……>……</……>
			……
	</express>
	JSON:
	{
		"ID":"abs123",
		"site":"一个对象",
		"……":"……",
		……
	}
	常用的JSON解析工具包括谷歌的解析Gson和阿里的解析FastJson。
	都需要引入JAR包,都有不同的对应格式。
	Gson格式:
	1.将java中的对象转换成JSON字符串:
		String json = new Gson().toJSON(new Book())
		提取后的格式就是:
		"{\"id\":1,\"name\":\"halibote\"}"
		字符串和数字的格式有些许不同,要注意。
	2.将JSON字符串转化成java中的 对象
		定义要转换的json:
		String j = ……;
		将j传入通过方法传入对象中
		Book book = new Gson.fromJson(j,Book.class)
		假如定义的对象属性不齐全,则少了的部分数据读取出来时会丢失。
		假如接的时候用HashMap接:
		HashMap hm = new Gson.fromJson(j,HashMap.class)
		注意接到的对象内的每一个键值对的类型,后续调用不要调错了。
	FastJson格式:
	1.将java中的对象转换成JSON字符串:
		String json = JSON.toJSONString(new Book());
		提取后的格式就是:
		"{\"id\":1,\"name\":\"halibote\"}"
		同理
	2.将JSON字符串转化成java中的 对象
		定义要转换的json:
		String j = ……;
		将j传入通过方法传入对象中
		Book book = JSON.parseObject(j,Book.class);
		可以存入对象也可以存入数组
		如:
		String j = "[\"哈利波特\",\"198元\"……]"
		List<String> b = JSON.parseArray(j,String.class);
		String i = b.get(0);
		注意这里接收数组时,如果和接受对象的方法一样使用,则要注意数据类型。转成了Book就要注意数据是不是会在Book里面丢失或者错排,如哈利波特198元,斗破苍穹199元,使用数组分开四段传输,就要记得数组双数下标存书名,单数下标存价格。(很麻烦)
		总之如果用数组传的类型就要是用在数组比较方便的。否则就要注意内容的设置规律,提取调用的时候要注意。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值