Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通用函数json到POJO?_Java_Json_Generics_Jackson - Fatal编程技术网

Java 通用函数json到POJO?

Java 通用函数json到POJO?,java,json,generics,jackson,Java,Json,Generics,Jackson,我正在使用jacksonObjectMapper将json字符串转换为POJO objectMapper.readValue(jsonString, ResourceTypes.getClassName(resourceType)) ResourceTypes.getClassName(resourceType)返回不同的类名 例:学生、班级、酒店、班级等 现在,我想为以下内容编写一个通用函数: public static T toPOJO(String json, Class<T>

我正在使用jackson
ObjectMapper将json字符串转换为POJO

objectMapper.readValue(jsonString, ResourceTypes.getClassName(resourceType))
ResourceTypes.getClassName(resourceType)
返回不同的类名

例:学生、班级、酒店、班级等

现在,我想为以下内容编写一个通用函数:

public static T toPOJO(String json, Class<T> type){


        try {

            return JSON_MAPPER.readValue(json, type);

        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
publicstatict-toPOJO(字符串json,类类型){
试一试{
返回JSON_MAPPER.readValue(JSON,类型);
}捕获(JSONParsee异常){
e、 printStackTrace();
}捕获(JsonMappingException e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}

但是,这会给出错误未知类型
T
。如何编写此函数以返回任何POJO?

试试这个,可能会有用

public static <T> T toPOJO(String json, Class<T> type) {

    try {

        return JSON_MAPPER.readValue(json, type);

    } catch (JsonParseException e) {
        e.printStackTrace();
    } catch (JsonMappingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}
publicstatict-toPOJO(字符串json,类类型){
试一试{
返回JSON_MAPPER.readValue(JSON,类型);
}捕获(JSONParsee异常){
e、 printStackTrace();
}捕获(JsonMappingException e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}

如果有任何问题,请告诉我。

是的,这将删除编译错误,但不知何故thw函数无法正常工作。其他异常发生在
JSON\u MAPPER.readValue(JSON,type)