Search code examples
javajsonjacksonmapstruct

Convert from one POJO to another POJO using MapStruct


I need to convert from One pojo to Other using MapStruct.

POJO A : 

String A;
String b;
Map <String, Object> section;

POJO B : 

String D;
String E;
String F;
String J; 
String[] H;

for D, E it is a straight map i can do it via Mapping annotation like :

@Mapping(source = "a",target = "D")

now i'm looking for Map conversion to F, J, H (String Array).

Any possible leads will help me !


Solution

  • Able to achieve using expression keyword

    @Mapping(target = "F", expression = "java(returnStringValue(map, inputKeyName))")
    
    default String returnStringValue(Map<String, Object> detailsMap, String inputKey) {
         if (detailsMap.containsKey(inputKey)) {
             return detailsMap.get(inputKey).toString();
         }
         return null;
     }