我正在浏览一些在线资源,发现jackson可以分别用于java对象和json字符串的序列化和反序列化。但与此同时,我找到了一种名为smile的东西。以下是我的疑惑:
如果我不对,请指导我回答。感谢。
由于我对计算机科学领域很陌生,如果这个问题确实符合堆栈溢出标准,我会道歉。
答案 0 :(得分:2)
普通JSON标记和Smile之间的主要区别在于Smile是JSON的二进制标记版本。由于微笑更紧凑,因此在反序列化时它具有更少的开销,并且对于大型和复杂的有效载荷来说是更好的选择。
何时使用每个标记:
这两种格式是兼容的:您可以通过包装正确的解码器来发送微笑并解码为JSON。
答案 1 :(得分:0)
为了清楚起见。我的性能测试显示,现代Jackson与Afterburner的速度与JSON和Smile的速度相同。 Bson4Jackson的速度慢了5倍。
jacksonMapper_Json__Stream thrpt 5 950,796 ± 60,451 ops/ms
jacksonMapper_Json__Stream_Ab thrpt 5 1572,641 ± 43,928 ops/ms
jacksonMapper_Smile__Stream thrpt 5 945,343 ± 25,617 ops/ms
jacksonMapper_Smile__Stream_Ab thrpt 5 1482,769 ± 27,915 ops/ms
jacksonMapper_Bson__Stream thrpt 5 329,239 ± 12,119 ops/ms
jacksonMapper_Bson__Stream_Ab thrpt 5 361,253 ± 30,670 ops/ms
始终使用最接近您的数据集进行测试。