首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jackson解析JSON的高效转码

Jackson解析JSON的高效转码
EN

Stack Overflow用户
提问于 2014-08-08 22:12:04
回答 1查看 107关注 0票数 0

我正在使用Jackson streaming API将一个相当大的JSON (大约兆字节)反序列化为POJO。它工作得很好,但我想对它进行优化(无论是内存还是处理,代码都运行在Android上)。

我想要优化的主要问题是将大量字符串从UTF-8转换为ISO-8859-1。目前我使用的是:

代码语言:javascript
复制
String result = new String(parser.getText().getBytes("ISO-8859-1"));

据我所知,解析器最初将令牌内容复制到字符串(getText())中,然后从它创建一个字节数组(getBytes()),然后使用该数组创建所需编码的最终字符串。太多的分配和复制。

理想的解决方案是getText()接受编码参数,只给我最终的字符串,但事实并非如此。

有没有其他想法,或者我思维上的缺陷?

EN

回答 1

Stack Overflow用户

发布于 2014-08-09 00:31:58

您可以使用:

代码语言:javascript
复制
parser.getBinaryValue() (present on version 2.4 of Jackson)

或者,您可以实现一个ObjectCodec (使用readValue(...)方法)知道如何在ISO8859-1中将字节转换为字符串),并使用parser.setCodec()进行设置。

如果您可以控制json生成,请避免使用不同于UTF-8的字符集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25205533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档