我正在尝试使用Jackson的ObjectMapper()函数:convertValue
。
它需要2个参数(3个重载):
我有以下代码:
val m = new ObjectMapper()
val map: Map[String, Object] = m.convertValue(bean, classOf[Map])
不适用于错误Type Mismatch. Expected JavaType actual Class[Map]
。
我使用classOf[java.util.Map]
,Map.getClass
等进行了测试,但无法使其正常工作。
我应该如何发送该参数?
答案 0 :(得分:1)
实例(只能)由
com.fasterxml.jackson.databind.type.TypeFactory
构造。
然后您可以看到它可以用作例如
m.getTypeFactory.constructMapType(classOf[java.util.Map[_, _]], classOf[YourKey], classOf[YourValue])
答案 1 :(得分:0)
您可以使用映射器获取JavaType,例如:
val stringType:JavaType = mapper.constructType(String.class);
您可以尝试以下方法解决问题:
val m = new ObjectMapper()
val mapType:JavaType = mapper.constructType(java.util.Map.class)
val map: Map[String, Object] = m.convertValue(bean, mapType)