zoukankan      html  css  js  c++  java
  • Gson和FastJson

    一、来源

      Gson出自Google,不需要例外额外的jar,能够直接跑在JDK上,主要为toJson与fromJson两个转换函数,在功能上面无可挑剔,但是性能上面比FastJson有所差距。

      FastJson出自阿里巴巴,无依赖,不需要例外额外的jar,能够直接跑在JDK上,在复杂类型的Bean转换Json上会出现一些问题,可能会出现引用的类型,导致Json转换出错,需要制定引用,但是解析速度极快,超越所有的类库。

    二、简单用法

      2.1、Gson

    //maven依赖
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.7</version>
    </dependency>
    
    //json与普通类型的bean之间的转换
    
    //bean转换json
    Gson gson = new Gson();
    String json = gson.toJson(obj);//obj是对象
    
    //json转换bean
    Gson gson = new Gson();
    String json = "{"id":"1","name":"geenk"}";
    Company c = gson.fromJson(json, Company.class);
    
    //json与复杂类型的bean之间的转换,比如List,Set,需要使用TypeToken
    Gson gson = new Gson();
    String json = "[{"id":"1","name":"geenk"},{"id":"2","name":"alibaba"}]";
    
    //json转换成List
    List list = gson.fromJson(json,new TypeToken<LIST>() {}.getType());
    
    //json转换成Set
    Set set = gson.fromJson(json,new TypeToken<SET>() {}.getType());

      2.2、FastJson

    //maven依赖
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.7</version>
    </dependency>
    
    //json与普通类型的bean之间的转换
    
    //bean转换json
    
    //格式化json
    JSON.toJSONString(obj,true);//obj是对象
    
    //非格式化的json
    JSON.toJSONString(obj,false);//obj是对象
    
    
    //json转换bean
    String json = "{"id":"2","name":"geenk"}";
    Company company = JSON.parseObject(json, Company.class);
    
    //添加
    company.put(key,value);
    //删除
    company.put(key);
    //判断包含
    company.contains(key);
    //获取
    company.get(key);
    
    
    //json与复杂类型的bean之间的转换,比如List,Set,需要用到TypeReference
    
    String json = "[{"id":"1","name":"geenk"},{"id":"2","name":"alibaba"}]";
    
    //将json转换成List
    List list = JSON.parseObject(json,new TypeReference<ARRAYLIST>(){});
    
    //将json转换成Set
    Set set = JSON.parseObject(json,new TypeReference<HASHSET>(){});
  • 相关阅读:
    分层图最短路(DP思想) BZOJ2662 [BeiJing wc2012]冻结
    动态规划 BZOJ1925 地精部落
    线性DP SPOJ Mobile Service
    线性DP codevs2185 最长公共上升子序列
    数位DP POJ3208 Apocalypse Someday
    线性DP POJ3666 Making the Grade
    杨氏矩阵 线性DP? POJ2279 Mr.Young's Picture Permutations
    tarjan强连通分量 洛谷P1262 间谍网络
    树链剖分 BZOJ3589 动态树
    二分图 BZOJ4554 [Tjoi2016&Heoi2016]游戏
  • 原文地址:https://www.cnblogs.com/geekdc/p/6722715.html
Copyright © 2011-2022 走看看