Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
Json 使用jackson的Scala ListMap反序列化_Json_Scala_Serialization_Jackson - Fatal编程技术网

Json 使用jackson的Scala ListMap反序列化

Json 使用jackson的Scala ListMap反序列化,json,scala,serialization,jackson,Json,Scala,Serialization,Jackson,我正在尝试使用Jackson序列化然后反序列化Scala不可变列表映射 我定义val foo:ListMap[String,String]=ListMap(“foo1”->“bar1”,“foo2”->“bar2”),然后使用jackson对其进行序列化。我验证了序列化字符串,它看起来很好。然后,当我尝试使用Jackson反序列化字符串时,我得到以下错误: java.lang.ClassCastException: scala.collection.immutable.Map$Map1 cann

我正在尝试使用Jackson序列化然后反序列化Scala不可变列表映射

我定义
val foo:ListMap[String,String]=ListMap(“foo1”->“bar1”,“foo2”->“bar2”)
,然后使用jackson对其进行序列化。我验证了序列化字符串,它看起来很好。然后,当我尝试使用Jackson反序列化字符串时,我得到以下错误:

java.lang.ClassCastException: scala.collection.immutable.Map$Map1 cannot be cast to scala.collection.immutable.ListMap
    at .<init>(<console>:12)
    at .<clinit>(<console>)
    at .<init>(<console>:7)
    at .<clinit>(<console>)
    at $print(<console>)
java.lang.ClassCastException:scala.collection.immutable.Map$Map1不能强制转换为scala.collection.immutable.ListMap
在。(:12)
在
在。(:7)
在
$print()
知道如何有效地序列化/反序列化ListMaps吗?

代码 序列化ListMap的代码是

val mapper = new ObjectMapper
mapper.registerModule(DefaultScalaModule)
val m = ListMap((5, 1), (2, 33), (7, 22), (8, 333))
mapper.writeValueAsString(m)
反序列化是

val str = """{"5":1,"2":33,"7":22,"8":333}"""
val listMap:ListMap = objectMapper.readValue[ListMap](str)
使用与序列化示例中相同的映射器初始化

输出 用于序列化

{"5":1,"2":33,"7":22,"8":333}
Map(5 -> 1, 2 -> 33, 7 -> 22, 8 -> 333)
用于反序列化

{"5":1,"2":33,"7":22,"8":333}
Map(5 -> 1, 2 -> 33, 7 -> 22, 8 -> 333)
代码 序列化ListMap的代码是

val mapper = new ObjectMapper
mapper.registerModule(DefaultScalaModule)
val m = ListMap((5, 1), (2, 33), (7, 22), (8, 333))
mapper.writeValueAsString(m)
反序列化是

val str = """{"5":1,"2":33,"7":22,"8":333}"""
val listMap:ListMap = objectMapper.readValue[ListMap](str)
使用与序列化示例中相同的映射器初始化

输出 用于序列化

{"5":1,"2":33,"7":22,"8":333}
Map(5 -> 1, 2 -> 33, 7 -> 22, 8 -> 333)
用于反序列化

{"5":1,"2":33,"7":22,"8":333}
Map(5 -> 1, 2 -> 33, 7 -> 22, 8 -> 333)