java对象转换工具类_java json字符串转对象

java对象转换工具类_java json字符串转对象一、引言json字符串现在是项目中很常用的了,尤其是在写接口返回数据一般都是json格式的。小编最近在看项目中,发现有多处地方用到了java对象转json,但是引用的jar包都是不统一的。常见的有由alibaba提供的fastjson、jackson等等一些二、实现引入jar先,jackSon解析JSON,SpringMVC内置的解析器就是这个。<!–Jacks…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、引言

json字符串现在是项目中很常用的了,尤其是在写接口返回数据一般都是json格式的。小编最近在看项目中,发现有多处地方用到了java对象转json,但是引用的jar包都是不统一的。

常见的有由alibaba提供的fastjson、jackson 等等一些

二、实现

引入jar先,jackSon解析JSON,SpringMVC内置的解析器就是这个。

 <!-- Jackson Json处理工具包 -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.4.2</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.7.3</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.7.3</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.7.3</version>
            </dependency>

 

package com.taotao.model.utils;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.List;

/**
 * json工具类
 */
public class JsonUtils {

    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();

    /**
     * 将对象转换成json字符串。
     * <p>Title: pojoToJson</p>
     * <p>Description: </p>
     * @param data
     * @return
     */
    public static String objectToJson(Object data) {
    	try {
			String string = MAPPER.writeValueAsString(data);
			return string;
		} catch (JsonProcessingException e) {
			e.printStackTrace();
		}
    	return null;
    }
    
    /**
     * 将json结果集转化为对象
     * 
     * @param jsonData json数据
     * @param clazz 对象中的object类型
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = MAPPER.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
        	e.printStackTrace();
        }
        return null;
    }
    
    /**
     * 将json数据转换成pojo对象list
     * <p>Title: jsonToList</p>
     * <p>Description: </p>
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
    	JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
    	try {
    		List<T> list = MAPPER.readValue(jsonData, javaType);
    		return list;
		} catch (Exception e) {
			e.printStackTrace();
		}
    	
    	return null;
    }
    
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193778.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 不再年轻,尽管如此一遍

    不再年轻,尽管如此一遍

    2022年1月7日
  • servlet的工作原理_servlet的作用

    servlet的工作原理_servlet的作用1.Servlet容器Servlet是运行Servlet容器的基础之上的,所以了解Servlet工作原理就得先从Servlet容器说起,以Tomact为例:在Tomact容器等级中,Context容器直接管理Servlet在容器中的包装类Wrapper,每个Context对应一个Web项目,所以Context如何运行直接影响到Servlet的运行。1

    2022年10月4日
  • p6spy的使用和配置「建议收藏」

    p6spy的使用和配置「建议收藏」【注意】:本教程适用与springboot项目1.加载jar包<!–sql打印–><!–https://mvnrepository.com/artifact/p6spy/p6spy–><dependency><groupId>p6spy</groupId><artifactId>p6spy</artifactId>

    2022年9月28日
  • 如何系统备份ghost_服务器可以用pe备份吗

    如何系统备份ghost_服务器可以用pe备份吗电脑出现系统故障是一个很正常的现象,在这个时候只能通过重组系统的方法来解决故障,如果我们此前有将正常的系统备份到U盘里面那么重装系统就会变得很简单,接下来就教给大家怎样用GHOST备份系统。1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。2、重启后电脑就会进入一键…

    2022年9月6日
  • linux中如何查看端口占用情况「建议收藏」

    linux中如何查看端口占用情况「建议收藏」lsoflsof(listopenfiles)是一个列出当前系统打开文件的工具。lsof查看端口占用语法格式:lsof-i:端口号实例查看服务器8000端口的占用情况:#lsof-i:8000COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEnodejs26993root10uIPv4379995140t0TCP*:8000(LISTEN)可以看到8000端口已经

    2022年10月31日
  • 为什么0xffffffff是-1?(计算机对整型的存储)[通俗易懂]

    为什么0xffffffff是-1?(计算机对整型的存储)[通俗易懂]一个数字在计算机中都是以二进制补码的形式存储的。先了解这句核心。。。我们认为中的int整型数值顺序java中int类型是4个字节,也就是32位,其中第一位是符号位,int数值的存储结构我们利用System.out.println(Integer.toBinaryString(Integer.MAX_VALUE));拿到int的最大值,是1111111111111111111111111111111,31个1,首位是0(代表正数,省略了)那我们给int的最大值+1,会发生什么呢?Sys

    2022年5月13日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号