java字符串转map_java 字符串转map map转对象

这是一个Java工具类,主要用于将Java对象转换为JSON字符串,以及将对象字段转化为Map,同时也能将Map转换回对象。类中使用了Jackson库进行序列化和反序列化操作,确保了JSON输出格式的整洁。
摘要由CSDN通过智能技术生成

packagecom.home.app.common.utils;importcom.fasterxml.jackson.annotation.JsonInclude.Include;importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.ObjectMapper;importcom.fasterxml.jackson.databind.SerializationFeature;importjava.lang.reflect.Field;importjava.lang.reflect.Modifier;importjava.util.LinkedHashMap;importjava.util.Map;/***@authorBinary Wang*/

public classJsonUtils {private static final ObjectMapper JSON = newObjectMapper();static{

JSON.setSerializationInclusion(Include.NON_NULL);

JSON.configure(SerializationFeature.INDENT_OUTPUT, Boolean.TRUE);

}public staticString toJson(Object obj) {try{returnJSON.writeValueAsString(obj);

}catch(JsonProcessingException e) {

e.printStackTrace();

}return null;

}/*** Object转Map

*@paramobj

*@return

*/

public static MapgetObjectToMap(Object obj) {

Map map = new LinkedHashMap();

Class> clazz =obj.getClass();

System.out.println(clazz);for(Field field : clazz.getDeclaredFields()) {

field.setAccessible(true);

String fieldName=field.getName();

Object value= null;try{

value=field.get(obj);

}catch(IllegalAccessException e) {

e.printStackTrace();

}if (value == null){

value= "";

}

map.put(fieldName, value);

}returnmap;

}//Map转Object

public static Object getMapToObject(Map map, Class>beanClass) {if (map == null)return null;

Object obj= null;try{

obj=beanClass.newInstance();

}catch(InstantiationException e) {

e.printStackTrace();

}catch(IllegalAccessException e) {

e.printStackTrace();

}

Field[] fields=obj.getClass().getDeclaredFields();for(Field field : fields) {int mod =field.getModifiers();if (Modifier.isStatic(mod) ||Modifier.isFinal(mod)) {continue;

}

field.setAccessible(true);if(map.containsKey(field.getName())) {try{

field.set(obj, map.get(field.getName()));

}catch(IllegalAccessException e) {

e.printStackTrace();

}

}

}returnobj;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值