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>(){});
  • 相关阅读:
    物理初中电学套题犯傻题整理
    Ansible之playbook语法
    Ansible之安装-使用aliyun的epel源
    Ansible之批量执行简单指令
    Ansible之配置文件ansible.cfg
    k8s之harbor私有镜像仓库部署
    Ansible之inventory资源清单
    centos7 二进制部署kubernetes(v1.19.0) 高可用集群
    react用ref之坑 (react中findDOMNode)
    iOS开发申请组播广播权限
  • 原文地址:https://www.cnblogs.com/geekdc/p/6722715.html
Copyright © 2011-2022 走看看