杰克逊映射器不是 arrayList 内的映射类



如果我有这个POJO:

class Day {
val meals: MutableList<Meal> = mutableListOf()
lateinit val meal: Meal
}

class Meal {
}

如果我尝试转换表示Day模型的HashMapmap,如下所示:

val obj = objectMapper.convertValue(map, Day::class.java)

杰克逊只将变量meal而不是列表转换为膳食。相反,meals将是一个数组列表HashMap

我尝试手动将meals中的每个哈希映射转换为Meal对象,并且它起作用了,因此内部的哈希映射可以转换为Meal并且没有错误。

我想找到的是如何自动做到这一点。

您可以使用以下代码片段作为参考:

extractObjectWithTypeReference(data,new TypeReference<DataListUploadRequest<MakeModelUploadData>>(){});

创建以下泛型方法:

public static <T> T extractObjectWithTypeReference(Object object,TypeReference<?> typeReference) {
return new ObjectMapper().convertValue(object,typeReference);
}

我的班级如下:

public class DataListUploadRequest<T> {
private List<T> dataList;
public List<T> getDataList() {
return dataList;
}
public void setDataList(List<T> dataList) {
this.dataList = dataList;
}
}

最新更新