杰克逊映射器不在arrayList内映射类

时间:2019-07-03 11:19:46

标签: java android kotlin jackson pojo

如果我有这个POJO:

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

class Meal {

}

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

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

Jackson仅将变量meal转换为进餐,而不转换列表。相反,meals将是HashMap的arrayList。

我尝试将meals内的每个Hashmap手动转换为Meal对象,并且可以正常工作,因此可以将内部的Hashmap转换为Meal,并且没有错误。

我要查找的是如何自动执行。

1 个答案:

答案 0 :(得分:0)

您可以使用下面的代码片段进行相同的引用:

Set FinalRange = ActiveWorkbook.Worksheets("Fiche Horaire").Range("A:A")
emptyroww = WorksheetFunction.CountA(FinalRange)

precautionroww = 0
If emptyroww > 50 Then precautionroww = emptyroww - 50

For a = precautionroww To emptyroww
    If ActiveWorkbook.Worksheets("Fiche Horaire").Cells(a, 1).Value = name Then ActiveWorkbook.Worksheets("Fiche Horaire").Cells(a, 4).Value = "it works"
Next

创建以下通用方法:

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

我的班级如下:

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