使用fastjson序列化map,代码如下
val map=Map("test1" -> "aa")
val result=com.alibaba.fastjson.JSON.toJSONString(map,Array.empty[SerializerFeature]:_*)
println(result)
输出结果为:
{"empty":false,"traversableAgain":true}
使用fastjson序列化map,代码如下
val map=Map("test1" -> "aa")
val result=com.alibaba.fastjson.JSON.toJSONString(map,Array.empty[SerializerFeature]:_*)
println(result)
输出结果为:
{"empty":false,"traversableAgain":true}
使用scala.util.parsing.json可以得到预期输出
val map=Map("test1" -> "aa")
val result=scala.util.parsing.json.JSONObject.apply(map)
println(result)
输出结果为:
{"test1" : "aa"}
想请教下fastjson序列化异常的原因
@Robert114 我也遇到了同样的问题。请问该如何解决?
我没解决这个问题。fastjson 是为 Java 设计的,也许它在 Scala 中有特殊的用法。
@junjun-yang @huangyunbo 您可以使用jsoniter-scala来实现这一点,它在解析和序列化方面具有相同或更高的效率,并且支持 Scala case 类和集合,直到 fastjson 正式支持 Scala 为止。
好的,谢谢你的推荐。
异常的原因如下: 假设val map = Map("key" -> 1) map的className为: scala.collection.immutable.Map$Map1 scala在获取当前对象匹配的ObjectSerializer时, 会根据当前类的className跟已知对象类型(比如Integer, Map, Array等) 比较, 判断传入的对象类型是否跟已知类型相同, 或者是否是对应的子类等。 Scala中的Map类型在匹配完所有已知类型后都没有发现对应的ObjectSerializer类, 最终使用了默认的JavaBeanSerializer(com\alibaba\fastjson\serializer\SerializeConfig.class$getObjectWriter), 导致错误
没有解决办法吗. 就用fastjson的话