Casting LinkedHashMap to Complex Object

后端 未结 3 1040
难免孤独
难免孤独 2020-11-30 23:13

I\'ve got an application that stores some data in DynamoDB using Jackson to marshall my complex object into a JSON.

For example the object I\'m marshalling might lo

3条回答
  •  一个人的身影
    2020-11-30 23:34

    There is a good solution to this issue:

    import com.fasterxml.jackson.databind.ObjectMapper;
    
    ObjectMapper objectMapper = new ObjectMapper();
    
    ***DTO premierDriverInfoDTO = objectMapper.convertValue(jsonString, ***DTO.class); 
    
    Map map = objectMapper.convertValue(jsonString, Map.class);
    

    Why did this issue occur? I guess you didn't specify the specific type when converting a string to the object, which is a class with a generic type, such as, User .

    Maybe there is another way to solve it, using Gson instead of ObjectMapper. (or see here Deserializing Generic Types with GSON)

    Gson gson = new GsonBuilder().create();
    
    Type type = new TypeToken>>(){}.getType();
    
    BaseResponseDTO> results = gson.fromJson(jsonString, type);
    
    BigDecimal revenue = results.getResult().get(0).getRevenue();
    

提交回复
热议问题