数据交换语言---XML与JSON

数据交换语言

如同人类通过交流相互合作,计算机网络中计算机的相互合作也依赖于彼此的信息交流。人类间的相互交流可以通过当面交流,电话,短信,邮件,IM应用来实现,但这建立在两人使用共同语言的基础上。计算机间可以以TCP等方式传输数据,但我们需要预定义一种为双方计算机所接受的“语言“,方能使数据交流正常进行。

XML

SOAP协议

SOAP 是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。或者更简单地说:SOAP 是用于访问网络服务的协议。

什么是 SOAP?
SOAP 指简易对象访问协议
SOAP 是一种通信协议
SOAP 用于应用程序之间的通信
SOAP 是一种用于发送消息的格式
SOAP 被设计用来通过因特网进行通信
SOAP 独立于平台
SOAP 独立于语言
SOAP 基于 XML
SOAP 很简单并可扩展
SOAP 允许您绕过防火墙
SOAP 将被作为 W3C 标准来发展

postman发soap请求

https://blog.csdn.net/u012014531/article/details/100982904

XML语法格式

1.  XML文档声明    <?xml version="1.0" encoding="UTF-8"?>
2.  标记 ( 元素 / 标签 / 节点)          XML文档,由一个个的标记组成.        语法:            开始标记(开放标记): <标记名称>            结束标记(闭合标记): </标记名称>
            标记名称:   自定义名称,必须遵循以下命名规则:                        1.名称可以含字母、数字以及其他的字符                        2.名称不能以数字或者标点符号开始                        3.名称不能以字符 “xml”(或者 XML、Xml)开始                        4.名称不能包含空格,不能包含冒号(:)                        5.名称区分大小写            标记内容:   开始标记与结束标记之间 ,是标记的内容.
        例如 ,我们通过标记, 描述一个人名:            <name>李伟杰</name>
3.  一个XML文档中, 必须有且且仅允许有一个根标记.        正例:            <names>                <name>张三</name>                <name>李四</name>            </names>        反例:            <name>李四</name>            <name>麻子</name>
4.  标记可以嵌套, 但是不允许交叉.        正例:            <person>                <name>李四</name>                <age>18</age>            </person>        反例:            <person>                <name>李四<age></name>                18</age>            </person>
5.  标记的层级称呼 (子标记, 父标记 , 兄弟标记, 后代标记 ,祖先标记)        例如:            <persons>                <person>                    <name>李四</name>                    <length>180cm</length>                </person>                <person>                    <name>李四</name>                    <length>200cm</length>                </person>            </persons>
        name是person的子标记.也是person的后代标记        name是persons的后代标记.
案例: 
语法进阶CDATA (了解) 
        name是length的兄弟标记.        person是name的父标记.        persons是name的祖先标记.
6.  标记名称 允许重复 
7.  标记除了开始和结束 , 还有属性.        标记中的属性, 在标记开始时 描述, 由属性名和属性值 组成.        格式:            在开始标记中, 描述属性.            可以包含0-n个属性, 每一个属性是一个键值对!            属性名不允许重复 , 键与值之间使用等号连接, 多个属性之间使用空格分割.            属性值 必须被引号引住.
        案例:            <persons>                <person id="10001" groupid="1">                    <name>李四</name>                    <age>18</age>                </person>                <person id="10002" groupid="1">                    <name>李四</name>                    <age>20</age>                </person>            </persons>
8.  注释    注释不能写在文档文档声明前    注释不能嵌套注释        格式:            注释开始:   <!-            注释结束:   --> 


//CDATA
CDATA 部分中的所有内容都会被解析器忽略。 CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束

Java解析XML 掌握

: Java中有几种XML解析方式 ? 分别是什么 ? 有什么样的优缺点 ?: 四种.
    1.  SAX解析            
    解析方式是事件驱动机制 !            SAX解析器, 逐行读取XML文件解析 , 每当解析到一个标签的开始/结束/内容/属性时,触 发事件.            我们可以编写程序在这些事件发生时, 进行相应的处理.
            优点:                分析能够立即开始,而不是等待所有的数据被处理                逐行加载,节省内存.有助于解析大于系统内存的文档                有时不必解析整个文档,它可以在某个条件得到满足时停止解析.            缺点:                1.  单向解析,无法定位文档层次,无法同时访问同一文档的不同部分数据(因为逐 行解析, 当解析第n行是, 第n-1行已经被释放了, 无法在进行操作了).                2.  无法得知事件发生时元素的层次, 只能自己维护节点的父/子关系.                3.  只读解析方式, 无法修改XML文档的内容.           
    2.  DOM解析            是用与平台和语言无关的方式表示XML文档的官方W3C标准,分析该结构通常需要加载整个 文档和内存中建立文档树模型.程序员可以通过操作文档树, 来完成数据的获取 修改 删除等.
            优点:                文档在内存中加载, 允许对数据和结构做出更改.                访问是双向的,可以在任何时候在树中双向解析数据。            缺点:                文档全部加载在内存中 , 消耗资源大.
    3.  JDOM解析            目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快。由于是第一 个Java特定模型,JDOM一直得到大力推广和促进。            JDOM文档声明其目的是“使用20%(或更少)的精力解决80%(或更多)Java/XML问题” (根据学习曲线假定为20%)            优点:                使用具体类而不是接口,简化了DOM的API。                大量使用了Java集合类,方便了Java开发人员。
            缺点:
DOM4J解析XML 掌握 
文档对象 Document 
元素对象 Element 
                没有较好的灵活性。                性能不是那么优异。    4.  DOM4J解析            它是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath 支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项, DOM4J是一个非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一 个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML。            目前许多开源项目中大量采用DOM4J , 例如:Hibernate

JSON

JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式

做什么?

将Java中的对象 快速的转换为 JSON格式的字符串. 将JSON格式的字符串, 转换为Java的对象.

Gson

转换JSON字符串

String json = new Gson().toJSON(要转换的对象);

将JSON字符串转换为对象

对象 = new Gson().fromJson(JSON字符串,对象类型.class)

FastJson

转换JSON字符串

String json=JSON.toJSONString(要转换的对象);

将JSON字符串转换为对象

类型 对象名=JSON.parseObject(JSON字符串, 类型.class); 或 List<类型> list=JSON.parseArray(JSON字符串,类型.class);

https://zhuanlan.zhihu.com/p/27487096

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值