ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

FastJson中的ObjectMapper对象的使用详解

2019-12-12 14:54:36  阅读:331  来源: 互联网

标签:FastJson jsonStr return mapper param 详解 static e1 ObjectMapper


写在前面:开发中经常用到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,jsonStr,return,mapper,param,详解,static,e1,ObjectMapper
来源: https://www.cnblogs.com/kelelipeng/p/12029106.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有