为了在不同系统,不同编程语音的不同软件间传输文件信息的时候能够互相便捷的识别文件,有了统一规范的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元,使用数组分开四段传输,就要记得数组双数下标存书名,单数下标存价格。(很麻烦)
总之如果用数组传的类型就要是用在数组比较方便的。否则就要注意内容的设置规律,提取调用的时候要注意。
XML与JSON学习归纳
最新推荐文章于 2024-03-09 23:46:24 发布