web123456

Conversion between java Object and Map (with complete source code)

import java.util.HashMap; import java.util.Map; public class ObjectMapConversion { public static void main(String[] args) { // Create an object Person person = new Person("Tom", 20); // Convert object to Map Map<String, Object> personMap = objectToMap(person); System.out.println("Object to Map:" + personMap); // Convert Map to an object Person newPerson = mapToObject(personMap, Person.class); System.out.println("Map to object:" + newPerson); } /** * Convert object to Map * @param obj object * @return The map corresponding to the object */ public static Map<String,Object> objectToMap(Object obj) { Map<String, Object> map = new HashMap<>(); for (java.lang.reflect.Field field : obj.getClass().getDeclaredFields()) { try { field.setAccessible(true); map.put(field.getName(), field.get(obj)); } catch (IllegalAccessException e) { e.printStackTrace(); } } return map; } /** * Convert Map to an object of the specified type * @param map Map * @param clazz object type * @param <T> Object Type * @return object */ public static <T> T mapToObject(Map<String,Object> map, Class<T> clazz) { T obj = null; try { obj = clazz.newInstance(); for (java.lang.reflect.Field field : obj.getClass().getDeclaredFields()) { field.setAccessible(true); Object value = map.get(field.getName()); if (value != null) { field.set(obj, value); } } } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } return obj; } /** * Personnel */ static class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } } }