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; } }