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

Java中使用Gson操作json数据

Java中使用Gson操作json数据

引入依赖

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

Gson工具类

package cn.test.util;import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;/*** Gson工具类*/
public class GsonTool {/*** 使用gson需要先引入依赖**  <dependency>*             <groupId>com.google.code.gson</groupId>*             <artifactId>gson</artifactId>*             <version>2.9.0</version>*         </dependency>*/private static Gson gson = null;static {gson= new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();}/*** Object 转成 json** @param src  java obj* @return String*/public static String toJson(Object src) {return gson.toJson(src);}/*** json 转成 特定的cls的Object** @param json  String* @param classOfT    java class* @return  java obj*/public static <T> T fromJson(String json, Class<T> classOfT) {return gson.fromJson(json, classOfT);}/*** json 转成 特定的 rawClass<classOfT> 的Object** @param json String* @param classOfT  java class* @param argClassOfT  sub java class* @return java obj*/public static <T> T fromJson(String json, Class<T> classOfT, Class argClassOfT) {Type type = new ParameterizedType4ReturnT(classOfT, new Class[]{argClassOfT});return gson.fromJson(json, type);}public static class ParameterizedType4ReturnT implements ParameterizedType {private final Class raw;private final Type[] args;public ParameterizedType4ReturnT(Class raw, Type[] args) {this.raw = raw;this.args = args != null ? args : new Type[0];}@Overridepublic Type[] getActualTypeArguments() {return args;}@Overridepublic Type getRawType() {return raw;}@Overridepublic Type getOwnerType() {return null;}}/*** json 转成 特定的cls的list** @param json String* @param classOfT java class* @return java list obj*/public static <T> List<T> fromJsonList(String json, Class<T> classOfT) {return gson.fromJson(json,new TypeToken<List<T>>() {}.getType());}}
http://www.lryc.cn/news/99556.html

相关文章:

  • Verilog语法学习——LV10_使用函数实现数据大小端转换
  • Leetcode-每日一题【剑指 Offer II 009. 乘积小于 K 的子数组】
  • html/javascript-表格的创建和使用
  • [点微]同城原生微信小程序 小程序原生版 1.0.7(tom_xiaofenlei)
  • JDBC Some Templates
  • dubbo启动指定ip不使用docker虚拟网络ip
  • Bobo String Construction
  • 基于java在线个人网站源码设计与实现
  • Ubuntu18.04下编译qgc源码
  • Ros2_windows_install的学习笔记
  • 5、Kubernetes核心技术 - Controller控制器工作负载
  • 【java设计模式】创建型模式介绍(工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式)
  • Redis系列:Redis 的事务机制
  • 动静态网页、Django创建表关系、Django框架的请求生命周期流程图
  • 神经网络的初始化方法
  • 【SQL Server】DBCC CHECKDB只是一个数据库维护命令吗?
  • 三、Web安全相关知识
  • Android系统服务之AMS
  • Unity UGUI的EventTrigger (事件监听器)组件的介绍及使用
  • Matlab的SimuLink对FS32K144编程--内部数据存储Flash
  • 【MySQL】centos 7下MySQL的环境搭建
  • 【SpringCloud Alibaba】(四)使用 Feign 实现服务调用的负载均衡
  • ShardingSphere-Proxy水平分片详解与实战
  • PTA 1052 Linked List Sorting
  • 五,Eureka 第五章
  • yolov5目标框的融合(两个或多个框)
  • pythonAPI对接示API示例电商数据平台
  • 如何做好IT类的技术面试
  • 比memcpy还要快的内存拷贝,了解一下
  • 正则表达式常用字符及案例