当前位置:首页 > 后端开发 > Java常用工具类:JsonUtil

Java常用工具类:JsonUtil

6个月前 (05-25)59

为了解决接口返回值为以下Map转换成对象的问题

{errors=[], successes=[{uid=70475, sDate={20190114=[3], 20190112=[3]}}]}

Java对象属性中较简单的情况,直接使用反射取出字段名称和值放到对应map的key和value上即可。

可以参考https://blog.csdn.net/qq_23490959/article/details/79126244

但是对象属性多层的情况下使用反射就不简单了,针对这种情况的解决方案是:Map先转json字符串,然后再使用json字符串转对象

具体工具类为:

package com.hughjin.solr.util;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import java.lang.reflect.Type;

/**
 * @author hughjin
 */
public class JsonUtil {
    private static Gson gson = (new GsonBuilder()).enableComplexMapKeySerialization().serializeNulls().setDateFormat("yyyy-MM-dd HH:mm:ss").create();

    public JsonUtil() {
    }

    public static String toJson(Object obj) {
        return gson.toJson(obj);
    }

    public static <T> T fromJson(String json, Class<T> classOfT) {
        return gson.fromJson(json, classOfT);
    }

    public static JsonObject fromJson(String json) {
        return (new JsonParser()).parse(json).getAsJsonObject();
    }

    public static <T> T fromJson(String json, Type type) {
        return gson.fromJson(json, type);
    }
}

调用方法为:

 Map<String,Object> rspMap = new HashMap<>();
 Animals animals = JsonUtil.fromJson(JsonUtil.toJson(rspMap), new TypeToken<Animals>() {
        }.getType());

 

作者:hughjin
来源链接:https://blog.csdn.net/baidu_25310663/article/details/86006310

“Java常用工具类:JsonUtil” 的相关文章

java常用的包

常用的包(熟悉) 包的名称和功能 java.lang包 - 该包是Java语言的核心包,并且该包中的所有内容由Java虚拟机自动...

Java常用包

Java常用包 Java的核心类都放在Java包以及其子包下,Java扩展的许多类都放在Javax包以及其子包下。 这些实用类也就是前面所说的API,Oracle...

212 01 Android 零基础入门  03 Java常用工具类 05 Java多线程 02 线程的创建 01 通过Thread类创建线程

212 01 Android 零基础入门 03 Java常用工具类 05 Java多线程 02 线程的创建 01 通过Thread类创建线程

212 01 Android 零基础入门 03 Java常用工具类 05 Java多线程 02 线程的创建 01 通过Thread类创建线程 本文知识点:通过Thread类创建线程...

192 01 Android 零基础入门  03 Java常用工具类 04 Java集合 02 List集合 01 List概述

192 01 Android 零基础入门 03 Java常用工具类 04 Java集合 02 List集合 01 List概述

192 01 Android 零基础入门 03 Java常用工具类 04 Java集合 02 List集合 01 List概述 本文知识点:List概述 说明:因为时间紧张,...

java中操作时间的常用工具类

在开发中经常会遇到操作时间类的业务,虽然代码部分并不算难,但为了今后查找和使用方便,现将常用的几种操作时间的工具类代码予以罗列,以便今后参考;...

Java中的Constants类

Constants类即常量类是将一些常用的变量集合到一个地方的类,常量应该定义在类中,而不是接口中(见Effective Java 2nd Edition, Item19),...

java 全局工具类

packagecom.itjh.javaUtil; importjava.util.ArrayList; importjava.util.List;...

176 01 Android 零基础入门  03 Java常用工具类02 Java包装类 02 包装类学习 05  需要知道的几点知识(上)

176 01 Android 零基础入门 03 Java常用工具类02 Java包装类 02 包装类学习 05 需要知道的几点知识(上)

176 01 Android 零基础入门 03 Java常用工具类02 Java包装类 02 包装类学习 05 需要知道的几点知识(上) 本文知识点: 需要知道的几点知识(上)...

Java项目案例之---常用工具类练习

常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 impor...

java 开发中常用的字符串工具类,StringUtil

import java.io.UnsupportedEncodingException; import org.apache.commons.lang.StringUtil...