[alibaba/fastjson]序列化scala.collection.mutable.Map转Json无法实现,版本1.2.58

2025-10-29 263 views
5

val del = Map("name" -> "bame" ) val jsonStr = JSON.toJSONString(del, SerializerFeature.PrettyFormat) println(jsonStr)

输出: { "empty":false, "sizeMapDefined":false, "traversableAgain":true }

回答

3

@plokhotnyuk 非常感谢。我一开始用的是 JSON4S,后来了解到 FastJson 的性能非常强,比 JSON4S 高很多,所以开始尝试用 FastJson。那么,您提到的 JSONIter-Scala 也是一个比较流行的高性能 JSON 格式处理库吗?

2

@HenryBao91 我应该声明一下,我对 jsoniter-scala 做出了很大的贡献。

8 年前我刚开始使用 Scala 时也使用过 json4s,但现在没人关心修复它的安全问题

jsoniter-scala 的第一个版本大约在 1.5 年前发布,现在它因其方便的使用、安全性和性能而越来越受欢迎,吸引着用户。

与 Scala 的其他 JSON 库的一个主要区别是:几乎所有错误都在报告后的几天内通过后续版本得到修复。

以下是来自 Maven Central 统计数据的图表: 图像 图像

据我所知,fastjson 主要面向 Java 用户,其维护者可能会对 jsoniter-scala 的一些性能技巧感兴趣。它可以更快地解析和序列化浮点数、双精度数BigIntegerBigDecimaljava.time.*等基本数据类型。

1

@plokhotnyuk 很荣幸能得到您的详细解答。我对 Scala 并不是特别熟悉,因为我接触 Scala 的时间不长。我发现网上很多 FastJson 应用的例子都是用 Java 写的。最后,非常感谢您的宝贵帮助。

7

val del = Map("name" -> "bame" ) val jsonStr = JSON.toJSONString(del, SerializerFeature.PrettyFormat) println(jsonStr)

输出: { "empty":false, "sizeMapDefined":false, "traversableAgain":true }

可以考虑一下转为java.util.map然后用parse,自己估算一下对性能的压力