写在前面:开发中经常用到json和对象的相互转换,下面将列出FastJson中ObjectMapper对象的API的使用

一、maven工程中pom导入
<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-databind</artifactId>

<version>2.8.3</version>

</dependency>
二、使用
1、创建对象
public static ObjectMapper mapper = new ObjectMapper();
2、初始化
static {
// 转换为格式化的json
mapper.enable(SerializationFeature.INDENT_OUTPUT);
// 如果json中有新增的字段并且是实体类类中不存在的,不报错
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//修改日期格式
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
}
3、对象转为字符串
String jsonStr = mapper.writeValueAsString(user);

System.out.println("对象转为字符串:" + jsonStr);
4、对象转为byte数组
byte[] byteArr = mapper.writeValueAsBytes(user);

System.out.println("对象转为byte数组:" + byteArr);
5、json字符串转为对象
ObjectClass obj = mapper.readValue(jsonStr, ObjectClass.class);

System.out.println("json字符串转为对象:" + obj);
6、byte数组转为对象
ObjectClass obj = mapper.readValue(byteArr,ObjectClass.class);

System.out.println("byte数组转为对象:" + obj);
7、集合转为字符串
String jsonStr = mapper.writeValueAsString(userList);

System.out.println("集合转为字符串:" + jsonStr);
8、字符串转集合
List list = null;
try {
list = mapper.readValue(jsonStr, List.class);
} catch (IOException e1) {
e1.printStackTrace();
}
9、Map转为字符串
String jsonStr = mapper.writeValueAsString(testMap);

System.out.println("Map转为字符串:" + jsonStr);
10、字符串转Map
Map map = null;
try {
map = mapper.readValue(jsonStr, Map.class);
} catch (IOException e1) {
e1.printStackTrace();
}
三、JsonUtils工具类
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;

/**
* @Author Guixing
* @Date 2019/1/7 11:10
* @Description
*/
public class JsonUtils {

public static ObjectMapper mapper = new ObjectMapper();

static {
// 转换为格式化的json
mapper.enable(SerializationFeature.INDENT_OUTPUT);
// 如果json中有新增的字段并且是实体类类中不存在的,不报错
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//修改日期格式
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
}

/**
* 对象转为字符串
*
* @param obj
* @return
*/
public static String Object2Json(Object obj) {
String jsonStr = null;
try {
jsonStr = mapper.writeValueAsString(obj);
} catch (JsonProcessingException e1) {
e1.printStackTrace();
}
return jsonStr;
}

/**
* 对象转为byte数组
*
* @param obj
* @return
*/
public static byte[] object2ByteArray(Object obj) {
byte[] byteArr = new byte[0];
try {
byteArr = mapper.writeValueAsBytes(obj);
} catch (JsonProcessingException e1) {
e1.printStackTrace();
}
return byteArr;
}

/**
* json字符串转为对象
*
* @param jsonStr
* @param beanType
* @param <T>
* @return
*/
public static <T> T json2Object(String jsonStr, Class<T> beanType) {
T t = null;
try {
t = mapper.readValue(jsonStr, beanType);
} catch (IOException e1) {
e1.printStackTrace();
}
return t;
}

/**
* byte数组转为对象
*
* @param byteArr
* @param beanType
* @param <T>
* @return
*/
public static <T> T byteArr2Object(byte[] byteArr, Class<T> beanType) {
T t = null;
try {
t = mapper.readValue(byteArr, beanType);
} catch (Exception e) {
e.printStackTrace();
}
return t;
}

/**
* 集合转为字符串
*
* @param list
* @return
*/
public static String list2String(List list) {
String jsonStr = null;
try {
jsonStr = mapper.writeValueAsString(list);
} catch (JsonProcessingException e1) {
e1.printStackTrace();
}
return jsonStr;
}

/**
* 字符串转集合
*
* @param jsonStr
* @return
*/
public static List json2List(String jsonStr) {
List list = null;
try {
list = mapper.readValue(jsonStr, List.class);
} catch (IOException e1) {
e1.printStackTrace();
}
return list;
}

/**
* Map转为字符串
*
* @param map
* @return
*/
public static String map2String(Map map) {
String jsonStr = null;
try {
jsonStr = mapper.writeValueAsString(map);
} catch (JsonProcessingException e1) {
e1.printStackTrace();
}
return jsonStr;
}

/**
* 字符串转Map
*
* @param jsonStr
* @return
*/
public static Map json2Map(String jsonStr) {
Map map = null;
try {
map = mapper.readValue(jsonStr, Map.class);
} catch (IOException e1) {
e1.printStackTrace();
}
return map;
}

}

————————————————
版权声明:本文为CSDN博主「兴跃神话」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37394874/article/details/85992380

FastJson中的ObjectMapper对象的使用详解的更多相关文章

  1. CorelDRAW中六种复制对象的方法详解

    复制可保证对象的大小一致,复制也是所有操作中最基本的操作.CorelDRAW软件中支持多种复制对象的操作,本教程将详解CorelDRAW中六种复制对象的方法. 方法一 选择复制对象,点击编辑→复制,再 ...

  2. java使用POI操作XWPFDocument中的XWPFRun(文本)对象的属性详解

    java使用POI操作XWPFDocument中的XWPFRun(文本)对象的属性详解 我用的是office word 2016版 XWPFRun是XWPFDocument中的一段文本对象(就是一段文 ...

  3. Java中堆内存和栈内存详解2

    Java中堆内存和栈内存详解   Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,ja ...

  4. vc中调用Com组件的方法详解

    vc中调用Com组件的方法详解 转载自:网络,来源未知,如有知晓者请告知我.需求:1.创建myCom.dll,该COM只有一个组件,两个接口:   IGetRes--方法Hello(),   IGet ...

  5. 【转】angularjs指令中的compile与link函数详解

    这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下   通常大家在 ...

  6. Java6.0中Comparable接口与Comparator接口详解

    Java6.0中Comparable接口与Comparator接口详解 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者 ...

  7. 串口通信中ReadFile和WriteFile的超时详解!

    源:串口通信中ReadFile和WriteFile的超时详解! 在用ReadFile和WriteFile读写串行口时,需要考虑超时问题.如果在指定的时间内没有读出或写入指定数量的字符,那么ReadFi ...

  8. angularjs指令中的compile与link函数详解

    这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下   通常大家在 ...

  9. Java中的equals和hashCode方法详解

    Java中的equals和hashCode方法详解  转自 https://www.cnblogs.com/crazylqy/category/655181.html 参考:http://blog.c ...

随机推荐

  1. 【使用篇二】SpringBoot使用Druid作为数据源(19)

    Druid是一个关系型数据库连接池,它是阿里巴巴的一个开源项目.Druid支持所有JDBC兼容数据库,包括了Oracle.MySQL.PostgreSQL.SQL Server.H2等.Druid在监 ...

  2. BootStrap 关于input与btn的点击focus取消特效相关css

    取消btn按钮点击出现的外边框: .btn:focus, /*清除btn按钮点击出现的边框*/.btn:active:focus,.btn.active:focus,.btn.focus,.btn:a ...

  3. 微信公众号支付提示当前页面的URL未注册

    问题: 记一下前端时间自己做了一个微信公众号支付的功能,因为有一段时间没有接触过了微信支付方面的开发,居然忘记了在微信商户商户号中配置了对应的支付目录,所以提示我当前的域名是没有注册的. 设置支付目录 ...

  4. 微软、IBM、GitLab 等大厂全部到齐的 OCS 第一天有什么看点?

    在本周一的推文中我们大致介绍了下 Open Core 峰会及到场嘉宾,(≧▽≦) 当然还有 Nebula Graph 在会场的展位位置图,本文我们来看看 Open Core 峰会第一天有哪些值得一看的 ...

  5. 用 Python 实现植物大战僵尸代码!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: marble_xu GitHub地址:https://github ...

  6. CSS学习笔记-盒子阴影及文字阴影

    盒子阴影:    1.格式:        box-shadow:h-shadow v-shadow blur spread color insert;        box-shadow:水平偏移 ...

  7. error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

    这个报错一般是因为你图像的路径写错了,找不到图像而导致的. 解决问题的朋友麻烦点个推荐呗!嘿嘿

  8. SpringCloud之Eureka:服务发布与调用例子

    Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的. SpringCloud将它集成在其子 ...

  9. Spring Boot 2 + jpa + mysql例子

    Spring Data框架为数据访问提供了一个通用的模型,无论访问哪种数据库,都可以使用同样的方式,主要有以下几个功能:(1)提供数据与对象映射的抽象层,同一个对象,可以被映射为不同数据库的数据:(2 ...

  10. 此 iCloud 帐户已经存在。

    0x00 事件 将 Apple ID 换了一个邮箱,然后在 macOS 重新登陆的时候出现登录不上异常,始终显示 若要将此 Apple ID 用作主要的 iCloud 帐户,请从"互联网帐户 ...