当前位置: 首页 > news >正文

JAVA Gson的使用

 

<dependency>
          <groupId>com.google.code.gson</groupId>
          <artifactId>gson</artifactId>
          <version>2.8.2</version>
</dependency>

 

对数据的操作:



import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;

import static jdk.nashorn.internal.objects.Global.print;

/**
 * @Author : JCccc
 * @CreateTime : 2018-11-27
 * @Description :
 * @Point: Keep a good mood
 **/
public class testMain {

    public static void main(String[] args) {
     //手动创的一个实体类, 里面字段全是String类型
        User userTest=new User();
        userTest.setName("joke");
        userTest.setAge("16岁");
        userTest.setHeight("60Kg");
        userTest.setSex("男");

        Gson gson=new Gson();
        String jsonStr=gson.toJson(userTest,User.class);
        System.out.println("对象转JSON---"+jsonStr);

        User userTestNew=gson.fromJson(jsonStr,User.class);
        System.out.println("JSON转对象---"+userTestNew.toString());

       Map map=new LinkedHashMap();
       map.put("name","merry");
       map.put("age","17岁");
       map.put("height","62Kg");
       map.put("sex","女");
       String mapJsonStr=gson.toJson(map);
        System.out.println("map转JSON---"+mapJsonStr);

        List<User> userList = new ArrayList<>();
        userList.add(userTest);
       // System.out.println(userList.toString());
        String listJsonStr=gson.toJson(userList);
        System.out.println("list转JSON---"+listJsonStr);

        List<User> retList = gson.fromJson(listJsonStr,new TypeToken<List<User>>(){}.getType());
        System.out.println("listJSON转list---"+retList);

//报错
//        List<User> retList1 = gson.fromJson(mapJsonStr,new TypeToken<List<User>>(){}.getType());
//        System.out.println("mapJSON转list---"+retList1);
//报错
        /*List<User> retList2 = gson.fromJson(jsonStr,new TypeToken<List<User>>(){}.getType());
        System.out.println("对象JSON转list---"+retList2);*/
    }



}

 

运行结果:

对象转JSON---{"name":"joke","age":"16岁","height":"60Kg","sex":"男"}
map转JSON---{"name":"merry","age":"17岁","height":"62Kg","sex":"女"}
JSON转对象---User{name='merry', age='17岁', height='62Kg', sex='女'}
list转JSON---[{"name":"joke","age":"16岁","height":"60Kg","sex":"男"}]
listJSON转list---[User{name='joke', age='16岁', height='60Kg', sex='男'}]

 

好了,小记到此。

相关文章:

  • JAVA 最全最细的fastjson使用介绍,带你透彻领悟JSON
  • fastJson注解@JSONField 的作用及其效果
  • HttpClient 不同版本的超时时间设置
  • 使用两个栈实现队列,简单例子
  • 数据库ACID
  • 线程小记
  • JAVA JDK1.8 时间戳与时间格式化 实用工具类
  • 单例模式 之内部类延迟加载,(多)线程安全
  • Springboot 用session监听器统计在线用户数量
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • JAVA 责任链设计模式
  • JAVA回调函数简单讲解 CallBack
  • JAVA HttpClient 远程调用接口doGet、doPost工具类
  • JAVA 接口签名sign生成 工具类
  • mybatis-config配置文件各项简单介绍
  • python3.6+scrapy+mysql 爬虫实战
  • “大数据应用场景”之隔壁老王(连载四)
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Apache的基本使用
  • iOS | NSProxy
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Java|序列化异常StreamCorruptedException的解决方法
  • nodejs:开发并发布一个nodejs包
  • python3 使用 asyncio 代替线程
  • ReactNativeweexDeviceOne对比
  • Vue小说阅读器(仿追书神器)
  • windows-nginx-https-本地配置
  • 浮现式设计
  • 将回调地狱按在地上摩擦的Promise
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 如何在GitHub上创建个人博客
  • 我建了一个叫Hello World的项目
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • gunicorn工作原理
  • scrapy中间件源码分析及常用中间件大全
  • Semaphore
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​学习一下,什么是预包装食品?​
  • #Spring-boot高级
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)德国人的记事本
  • (转)我也是一只IT小小鸟
  • (转载)OpenStack Hacker养成指南
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .gitignore文件—git忽略文件
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET运行机制
  • @31省区市高考时间表来了,祝考试成功
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • [.net] 如何在mail的加入正文显示图片