1、方法
import com.alibaba.fastjson.JSON;
//字符串传map
Map<Object,Object> parse = (Map) JSON.parse("...");
//map转对象
ApiHomeVipLevelLog obj = (ApiHomeVipLevelLog)JsonUtils.getMapToObject(parse, ApiHomeVipLevelLog.class);
2、自定义JsonUtils工具类
JsonUtils.java
package com.home.app.common.utils;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* @author <a href="https://github.com/binarywang">Binary Wang</a>
*/
public class JsonUtils {
private static final ObjectMapper JSON = new ObjectMapper();
static {
JSON.setSerializationInclusion(Include.NON_NULL);
JSON.configure(SerializationFeature.INDENT_OUTPUT, Boolean.TRUE);
}
public static String toJson(Object obj) {
try {
return JSON.writeValueAsString(obj);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
/**
* Object转Map
* @param obj
* @return
*/
public static Map<String, Object> getObjectToMap(Object obj) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
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);
}
return map;
}
//Map转Object
public static Object getMapToObject(Map<Object, Object> 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();
}
}
}
return obj;
}
}
内容仅供参考,并非百分百解决您的问题。
本文作者: 雁书几封