首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将大型JSON字符串转换为JSON对象?

如何将大型JSON字符串转换为JSON对象?
EN

Stack Overflow用户
提问于 2020-11-09 20:58:03
回答 1查看 332关注 0票数 0

我的spring应用程序向服务器发出rest请求,来自服务器的响应是一个JSONObject字符串。JSON字符串非常大(200MB)。我想将json字符串转换为JSONObject。下面是我的转换代码:

代码语言:javascript
复制
exchange = restTemplate.exchange(Url, HttpMethod.POST, postEntity, String.class);
jsonObject = objectMapper.readValue(exchange.getBody(), JSONObject.class);

单次请求转换耗时3-5秒。但是,如果有多个请求,转换会花费很多时间(并行的8-10个请求需要60秒)。有没有更好的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2020-11-13 07:55:22

我想说的是,使用jackson-databind的ObjectMapper将200MB的JSON块转换成一个对象几乎总是会消耗大量的计算时间,而且还会消耗大量的内存。

如果你不需要一次在内存中使用JSON所表示的整个对象,也就是说,它的一大块就足够了,我建议切换到一种利用jackson's streaming API的方法。您可以在JSON的较小子集上将其与databind结合,将生成的DTO传递给某个使用者(一种访问者模式)。

我希望这对你的特殊用例有任何帮助。

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

https://stackoverflow.com/questions/64752148

复制
相关文章

相似问题

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