我在一个简单的项目中使用带有jackson序列化的msgpack java及其scala类型转换。msgpack最初是在python中序列化的,当我尝试用java或scala序列化时,它看起来像price��5.0000�,我得到了以下错误
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of double out of VALUE_EMBEDDED_OBJECT token
任何十进制类型都会发生这种情况。用msgpack序列化scala中的十进制值有什么窍门吗?
这些是im使用的版本。
"org.msgpack" % "msgpack-core" % "0.8.13",
"org.msgpack" % "jackson-dataformat-msgpack" % "0.8.13",
"com.fasterxml.jackson.core" % "jackson-core" % "2.9.1",
"com.fasterxml.jackson.core" % "jackson-annotations" % "2.9.1",
"com.fasterxml.jackson.core" % "jackson-databind" % "2.9.1",
"com.fasterxml.jackson.datatype" % "jackson-datatype-guava" % "2.9.1",
"com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.9.1",发布于 2018-04-06 05:34:23
您可以通过编写浮点值的自定义序列化程序来解决这一问题,该序列化程序还支持使用BigFloat从python中获取科学的符号字符串。返回new BigDecimal(<your string>)修复了这个特定的问题。
https://stackoverflow.com/questions/47241690
复制相似问题