从几个角度比较三种软件

  1. json操作
  2 反解
  3 性能

 

易用性还没有列出。

可以根据个人喜好进行取舍。

package json;

import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import lombok.Data; public class JsonTest {
public static void main(String[] args) throws Exception{
testFastjson();
testJackson();
testGson();
} public static Person getPerson(String name, int age){
Person person = new Person();
person.setAge(age);
person.setName(name);
return person;
}
public static void testFastjson(){
long startTime = System.currentTimeMillis();
String jsonstr = "";
Person person1 = getPerson("a",1);
for (int i =0;i < 100000;i++){
jsonstr = JSON.toJSONString(person1);
Person person = JSON.parseObject(jsonstr, Person.class);
}
System.out.println("fastjson cost:"+(System.currentTimeMillis()-startTime));
System.out.println(jsonstr);
} public static void testJackson() throws Exception{ long startTime = System.currentTimeMillis(); String jsonstr = "";
Person person1 = getPerson("a",1); ObjectMapper mapper = new ObjectMapper(); for (int i =0;i < 100000;i++){
jsonstr = mapper.writeValueAsString(person1);
Person person = mapper.readValue(jsonstr, Person.class);
}
System.out.println("jackson cost:"+(System.currentTimeMillis()-startTime));
System.out.println(jsonstr);
} public static void testGson(){
long startTime = System.currentTimeMillis(); String jsonstr = "";
Person person1 = getPerson("a",1); Gson gson = new Gson(); for (int i =0;i < 100000;i++){
jsonstr = gson.toJson(person1);
Person person = gson.fromJson(jsonstr, Person.class);
}
System.out.println("gson cost:"+(System.currentTimeMillis()-startTime));
System.out.println(jsonstr);
}
} @Data
class Person{
private String name;
private int age;
}

  

常用的三种json软件的使用的更多相关文章

  1. 国内常用的三种框架:ionic/mui/framework7对比

    国内常用的三种框架:ionic/mui/framework7对比 原文连接:http://zhihu.com/question/19558750/answer/91179040

  2. C语言中最常用的三种输入输出函数scanf()、printf()、getchar()和putchar()

    本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该 ...

  3. PHP常用的三种设计模式

    本文为大家介绍常用的三种php设计模式:单例模式.工厂模式.观察者模式,有需要的朋友可以参考下. 一.首先来看,单例模式 所谓单例模式,就是确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实 ...

  4. Linux 操作系统常用的三种流012

    Linux 操作系统常用的三种流: 0 标准输入流 1 标准输出流 2 标准错误流 通常在写脚本启动程序,写log时候,会出现如下写法: nohup commod > log.txt 2> ...

  5. 请写出JavaScript中常用的三种事件。

    请写出JavaScript中常用的三种事件. 解答: onclick,onblur,onChange

  6. 本文将介绍“数据计算”环节中常用的三种分布式计算组件——Hadoop、Storm以及Spark。

    本文将介绍“数据计算”环节中常用的三种分布式计算组件——Hadoop.Storm以及Spark. 当前的高性能PC机.中型机等机器在处理海量数据时,其计算能力.内存容量等指标都远远无法达到要求.在大数 ...

  7. Jquery 页面初始化常用的三种方法以及Jquery 发送ajax 请求

    第一种 $(document).ready(function(){ //文档就绪事件 }); 第二种是第一种的简略写法,效果上和第一种是等效的. $(function(){ //文档加载事件,整个文档 ...

  8. JS常用的三种匿名函数

    第一种: var f1=function(p1,p2){ return p1+p2; };//将函数赋值给一个变量 alert(f1(1,3)); 匿名函数没法调用,只能赋值给一个变量,由于是赋值语句 ...

  9. selenium常用的三种等待方式

    一.强制等待 使用方法:sleep(X),等待X秒后,进行下一步操作. 第一种也是使用最简单的一种办法就是强制等待sleep(X),强制让浏览器等待X秒,不管当前操作是否完成,是否可以进行下一步操作, ...

随机推荐

  1. java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) excel 工具框架

    产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件. 需求分析 对于 excel 导出,是一个很常见的需求. 最常见的解决方案就是使用 poi 直接同步导出一个 excel 文件. 客 ...

  2. BZOJ 3687: 简单题 bitset

    3687: 简单题 Time Limit: 10 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description 小呆开始研究集合论了,他 ...

  3. PostgreSQL模式(schema)介绍

    一个PostgreSQL数据库集群包含一个或多个已命名数据库.用户和用户组在整个集群范围内是共享的,但是其它数据并不共享.任何与服务器连接的客户都只能访问那个在连接请求里声明的数据库. 注意: 集群中 ...

  4. springboot之拦截器

    拦截器: package com.example.demo; import org.springframework.context.annotation.Bean; import org.spring ...

  5. 如何创建数据库以及MySQL增删改查命令的简单运用

    在已经安装好MySQL的前提下 1.在Windows打开命令提示符窗口,输入命令启动MySQL命令行工具并登入root用户:mysql -h localhost -u root -p 2.输入密码后, ...

  6. 属性控件CMFCPropertyGridCtrl简单用法

    这是我的原创! 用一堆的编辑框下拉框做配置界面,很是繁琐,还要对齐排版……用这个属性控件 CMFCPropertyGridCtrl 就可以统一风格了. //初始化 CMFCPropertyGridCt ...

  7. gitlab api 使用

    api文档:https://docs.gitlab.com/ee/api/projects.html#project-visibility-level 1.项目查询 http://127.0.0.1: ...

  8. linux xfs的一次io异常导致的crash

    returned. [ blocked seconds.----这个默认是120,该环境上是被人为设置1200 [8556407.425653] "echo 0 > /proc/sys ...

  9. 获得随机N位数不重复数字

    1, 总结下:每个Random实例里面有一个原子性的种子变量用来记录当前的种子的值,当要生成新的随机数时候要根据当前种子计算新的种子并更新回原子变量.多线程下使用单个Random实例生成随机数时候,多 ...

  10. Linux上Oracle18C 系统表空间大小调整 adjust the system tablespace for oracle18c on linux

    1. 测试过程中,发现  system tablespace is not enough, need to adjustment 初步解决方案: 查询一下 system tablespace的大小 S ...