美文网首页
Java中将对象(实体)类转成Json格式的数据

Java中将对象(实体)类转成Json格式的数据

作者: 雷神VeryYoung | 来源:发表于2017-10-12 18:54 被阅读0次

    在往常接口测试工作中都会遇到将对象(实体)类转成Json格式的数据构造成body发送给服务端,抽空对比了下几个第三方工具类的转换速度(jackson、Gson、fastjson)

    步骤:

    1.新建实体类Body

    2.在测试用例@Test方法中统计各种第三方包的时间

    上代码(代码上不了,放开源中国的Git上:https://gitee.com/veryxly/TestAPIDamo,后期这个项目慢慢做成接口测试demo)

    BodyClass为实体类

    TestCase为测试方法

    可以用这种方法构造接口请求的body(Json类型),也可以将Json数据转换为实体。原先的做法是用map存储数据,然后对map进行转换成Json。

    结论:Gson相对较快,其次是fastjson,然后jackson,以上仅实验所得数据!


    贴部分代码,主要是转换部分

    @Test

    public void TC_XZ_001() throws Exception{

    String jsonStr;

    BodyClass body = new BodyClass();

    body.setAccess_token("8447ff97-9b8c-4224-9cec");

    body.setCatalog("1");

    body.setTag("1");

    body.setPageSize("10");

    body.setPage("1");

    body.setDataType("json");

    long startTime = System.currentTimeMillis();

    ObjectMapper objectMapper = new ObjectMapper();

    jsonStr = objectMapper.writeValueAsString(body);

    long endTime = System.currentTimeMillis();

    long userTime = endTime - startTime;

    System.out.println("jackson json:"+jsonStr+";Time:"+userTime);

    }

    @Test

    public void TC_XZ_002(){

    String jsonStr;

    BodyClass body = new BodyClass();

    body.setAccess_token("8447ff97-9b8c-4224-9cec");

    body.setCatalog("1");

    body.setTag("1");

    body.setPageSize("10");

    body.setPage("1");

    body.setDataType("json");

    long startTime = System.currentTimeMillis();

    Gson gson = new Gson();

    jsonStr = gson.toJson(body);

    long endTime = System.currentTimeMillis();

    long userTime = endTime - startTime;

    System.out.println("Gson json:"+jsonStr+";Time:"+userTime);

    }

    @Test

    public void TC_XZ_003(){

    Object jsonStr;

    BodyClass body = new BodyClass();

    body.setAccess_token("8447ff97-9b8c-4224-9cec");

    body.setCatalog("1");

    body.setTag("1");

    body.setPageSize("10");

    body.setPage("1");

    body.setDataType("json");

    long startTime = System.currentTimeMillis();

    jsonStr = JSON.toJSON(body);

    long endTime = System.currentTimeMillis();

    long userTime = endTime - startTime;

    System.out.println("fastjson json:"+jsonStr+";Time:"+userTime);

    }


    期间怀疑jackson包用错了,试了三四个版本放弃了,是相对慢!Time单位为ms。

    jackson json:{"access_token":"8447ff97-9b8c-4224-9cec","catalog":"1","tag":"1","pageSize":"10","page":"1","dataType":"json"};Time:375

    Gson json:{"access_token":"8447ff97-9b8c-4224-9cec","catalog":"1","tag":"1","pageSize":"10","page":"1","dataType":"json"};Time:237

    fastjson json:{"access_token":"8447ff97-9b8c-4224-9cec","catalog":"1","dataType":"json","pageSize":"10","page":"1","tag":"1"};Time:405

    jackson json:{"access_token":"8447ff97-9b8c-4224-9cec","catalog":"1","tag":"1","pageSize":"10","page":"1","dataType":"json"};Time:395

    Gson json:{"access_token":"8447ff97-9b8c-4224-9cec","catalog":"1","tag":"1","pageSize":"10","page":"1","dataType":"json"};Time:181

    fastjson json:{"access_token":"8447ff97-9b8c-4224-9cec","catalog":"1","dataType":"json","pageSize":"10","page":"1","tag":"1"};Time:203

    jackson json:{"access_token":"8447ff97-9b8c-4224-9cec","catalog":"1","tag":"1","pageSize":"10","page":"1","dataType":"json"};Time:351

    Gson json:{"access_token":"8447ff97-9b8c-4224-9cec","catalog":"1","tag":"1","pageSize":"10","page":"1","dataType":"json"};Time:63

    fastjson json:{"access_token":"8447ff97-9b8c-4224-9cec","catalog":"1","dataType":"json","pageSize":"10","page":"1","tag":"1"};Time:91

    相关文章

      网友评论

          本文标题:Java中将对象(实体)类转成Json格式的数据

          本文链接:https://www.haomeiwen.com/subject/ojsoyxtx.html