我希望能在Java中将一个字符串解析为内部JSON对象(或等效对象)。通常的库,如Gson和Jackson,对我的需求来说速度太慢了(根据我的基准测试,每个字符串到Json解析耗费大于100微秒)。我知道有一些稍快的库,但看网上的基准测试,它们提供的性能提升很小(不到一个数量级的改善)。
如果我事先知道JSON的格式,那么有没有一种方法可以更快地解析它?例如,我知道该字符串将是以下格式的JSON:
如果我事先知道JSON的格式,那么有没有一种方法可以更快地解析它?例如,我知道该字符串将是以下格式的JSON:
{
"A" : 1.0 ,
"B" : "X"
}
即,我知道两个键将是“A”和“B”,值分别为double和string。鉴于这种格式的高级知识,是否有一种库或某种方法可以比通常更快地解析JSON?
ObjectMapper
所需的反射上,以动态确定和映射数据。您可以尝试使用Jackson的流解析器,并在自己的代码中静态地将其映射到POJO类中。 - AndreasObjectMapper
并测量稳态性能:由于负载非常小,Jackson和GSON应该能够比您看到的速度快10-100倍进行解码和绑定。无需执行二进制--这只会让您快50%。对于Jackson,还可以使用jackson-module-afterburner
(https://github.com/FasterXML/jackson-modules-base/tree/master/afterburner),它可以进一步提高30-40%的性能。 - StaxMan