需要帮助以通用模式将 JavaObject 转换为 Json

时间:2021-06-13 18:11:10

标签: java json algorithm spring-boot generics

我编写了一个通用方法,它可以很好地将任何 Json 对象转换为通用对象。

public <T> T convertJsontoObject    (String jsonObj, Class<T> any Type)
             throws JsonMappingException, JsonProcessingException 
             {
           ObjectMapper objectMap = new ObjectMapper();
              return objectMap.readValue(jsonObj, any Type);

              }   

      

但是在使用以下代码格式将通用对象类型转换为 JSON 格式时出现问题。有人可以帮助我或指导我使用相关代码.. 我不知道如何从泛型类类型中保留一个对象,因为该方法不支持泛型,我想要一个泛型方法来执行转换......

 public <T> String convertObjectToJson(Class<T> anyType) 
               { String jsonStringObj = ""; 
                try { jsonStringObj = new 
               ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(anyType);}
                }




             
        

1 个答案:

答案 0 :(得分:0)

当你返回一个字符串时,你不需要使用泛型,你只能在方法上接收一个对象

System.Threading.Thread.Sleep(180 * 1000);

使用它们

// you can treate try and catch inside them as you prefer

public static <T> T fromJson(String json, Class<T> classToReturn) throws Exception{
    return  new ObjectMapper().readValue(json, classToReturn);
}

public static String toJson(Object obj) throws Exception{
    return new ObjectMapper().writeValueAsString(obj);
}

public static String toJsonPrettyNonNullTreatingDateTypes(Object obj) throws Exception{
    return  new ObjectMapper()
            .setSerializationInclusion(Include.NON_NULL)
            .setSerializationInclusion(Include.NON_EMPTY)
            .registerModule(new JavaTimeModule() );
            .writerWithDefaultPrettyPrinter()
            .writeValueAsString(obj);
}