From 09381943007483d5b8dc148d5e7d31af2c5e01bc Mon Sep 17 00:00:00 2001 From: Bahaa El-Din Helmy Date: Wed, 31 May 2023 21:35:56 +0300 Subject: [PATCH] Article: Converting Object To Map in Java (#14160) This commit is related to the article entitled "Converting Object To Map in Java" --- .../objecttomap/ObjectToMapUnitTest.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 core-java-modules/core-java-collections-maps-6/src/test/com/baeldung/objecttomap/ObjectToMapUnitTest.java diff --git a/core-java-modules/core-java-collections-maps-6/src/test/com/baeldung/objecttomap/ObjectToMapUnitTest.java b/core-java-modules/core-java-collections-maps-6/src/test/com/baeldung/objecttomap/ObjectToMapUnitTest.java new file mode 100644 index 0000000000..52c2fb2bea --- /dev/null +++ b/core-java-modules/core-java-collections-maps-6/src/test/com/baeldung/objecttomap/ObjectToMapUnitTest.java @@ -0,0 +1,76 @@ +package java.com.baeldung.objecttomap; +import com.google.gson.Gson; +import org.junit.Assert; +import org.junit.Test; +import wiremock.com.fasterxml.jackson.core.type.TypeReference; +import wiremock.com.fasterxml.jackson.databind.ObjectMapper; +import wiremock.com.google.common.reflect.TypeToken; +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +public class ObjectToMapUnitTest { + Employee employee = new Employee("John", 3000.0); + + @Test + public void givenJavaObject_whenUsingReflection_thenConvertToMap() throws IllegalAccessException { + Map map = convertUsingReflection(employee); + Assert.assertEquals(employee.getName(), map.get("name")); + Assert.assertEquals(employee.getSalary(), map.get("salary")); + } + + private Map convertUsingReflection(Object object) throws IllegalAccessException { + Map map = new HashMap<>(); + Field[] fields = object.getClass().getDeclaredFields(); + + for (Field field : fields) { + field.setAccessible(true); + map.put(field.getName(), field.get(object)); + } + + return map; + } + + @Test + public void givenJavaObject_whenUsingJackson_thenConvertToMap() { + ObjectMapper objectMapper = new ObjectMapper(); + Map map = objectMapper.convertValue(employee, new TypeReference>() {}); + Assert.assertEquals(employee.getName(), map.get("name")); + Assert.assertEquals(employee.getSalary(), map.get("salary")); + } + + @Test + public void givenJavaObject_whenUsingGson_thenConvertToMap() { + Gson gson = new Gson(); + String json = gson.toJson(employee); + Map map = gson.fromJson(json, new TypeToken>() {}.getType()); + Assert.assertEquals(employee.getName(), map.get("name")); + Assert.assertEquals(employee.getSalary(), map.get("salary")); + } + + private static class Employee { + private String name; + private Double salary; + + public Employee(String name, Double salary) { + this.name = name; + this.salary = salary; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Double getSalary() { + return salary; + } + + public void setSalary(Double age) { + this.salary = salary; + } + } +}