之前的程序之间的通讯的数据载体是xml。后来在很多地方json替代了xml。主要有:
1.json格式简单,轻量,不需要前后的标签,减少数据传输的宽带。
2.js天然支持解析json,xml前后端都需要额外的解析一次。
3.json传输支持更多的类型,比如:字符串,数组,布尔值。而xml解析出来都是字符串。
而网页不用json来写,因为html是xml一个变式,html和css,js技术已非常成熟,各大浏览器都支持。不太可能让合浏览器厂商在改变规则,开发对json的支持。
大家一般用什么工具测试HTTP和json接口?
SoupUI,这是我现在用的最多的接口测试工具。
在我们日常的开发过程中,大多数是两种类型的接口:SOAP API和Rest API两种,SoupUI对这两种接口都有很好的支持,而且还支持Amazon Web Service,这个只在软件的首页上看到过,没有实际使用过。
其实很多的接口测试工具对这两种常用的接口都有很好的支持,具体的使用方法我在这里也不详细讲了,都是图形界面的操作,按照指示一步一步的新建即可完成。
其中它可以很方便地进行压力测试,也是按照提示,一步一步新建,最后的的操作页面是这样的:
可以设置:并发数、策略,压力测试的时间等。
结果可以展示:接口的最大响应时间、最小响应时间、平均响应时间、TPS等等。
非常好用,大家可以尝试。
希望我的回答,能够帮助到你!我将持续分享Java开发、架构设计、职业发展等方面的见解,希望能得到你的关注;另外,关注我后私信【资料】两个字,可获取架构、大数据、面试等相关资料。
如何将Java对象序列化成JSON和XML格式?
导入jar包可以方便的将Java对象序列化成JSON和XML格式
Java对象序列化成JSON格式
使用fastjson-1.2.13.jar,通过 JSON 类的 toJSONString (Object object)方法,把Java对象直接转换为String类型的json串,同理,调用parseObject(String text, Class clazz)方法可以把json串转换为Java对象,只需要传入json串和目标Java对象Person类的class即可
Java对象序列化成XML格式
使用xstream-1.4.9.jar,通过XStream对象的toXML(Object obj) 方法可实现Java对象到XML的转换,同样的,调用 fromXML(String xml) 方法可以把XML转换为Java对象,把String 类型的XML参数传入即可
有Protocol buffer这种轻便的序列化反序列化工具,Json为什么还会大量使用?
原因很简单:
1,json是JavaScript原生支持的,没有外部依赖;
2,json具有人眼可读性;
3,开发人员偷懒;
关于序列化的协议和框架,估计都可以出一本百科全书了,热门一点的如:
xml、json、bson、Hessian、protocol buffers...
还有很多小众冷门的,排名不分先后。
虽然有各种各样的协议和框架,但序列化本质上可以分为两种:
- 二进制协议,如 bson、Hessian、protocol buffers等,将数据转换为二进制形式。
- 文本协议,如 xml,json 等,这类协议将数据转换为文本(字符串)的形式。
二进制协议的优点是体积小效率高,例如protocol buffers可以用将数据压缩到位(bit),序列化和反序列化的性能也很好,非常适用于各种系统通讯和接口调用。
但问题也在这里,二进制数据几乎没有可读性,所以在开发和调试程序时,对程序员来说就比较痛苦,尤其是频繁变化的数据结构。
文本协议则刚好相反,数据体积大,性能差,却能满足可读性要求。例如我们可以轻松看懂一段json,或者人肉构造数据。 对于快速开发和web开发来说,可以提高开发效率,开发人员不用过多关注协议或者框架,专注业务。
我的观点是:
1,对于业务稳定,性能要求极高的场景,优先使用 protocol buffers 等二进制序列化协议;
2,对于性能要求不高,业务变化频繁的场景,优先使用 json、xml 等文本协议;