首页 > 解决方案 > 在java中从JSON中删除评论的最快方法?

问题描述

在互联网上到处寻找可靠的 json 注释剥离器和压缩器的 java 端口,但大多数都是有缺陷的设计(不支持多行注释或字符串中的注释模式)。

所以在我匆忙中,我把这个放在一起:https ://gist.github.com/justisr/abab012af3ef399908798a687185d49a

对我拥有的现有 json 文件进行了测试,一切都按预期进行,但我并不满意。真的没有更快/标准的方法从 json 字符串中剥离注释吗?

以前我使用的是https://github.com/getify/JSON.minify但它很慢,而且文件末尾的常规 // 注释再次破坏了它,因此我绝望了。

标签: javajsoncommentsminify

解决方案


最简单的事情是通过Jackson运行您的 JSON :

public static String removeComments(String json) throws IOException {
  ObjectMapper mapper = new ObjectMapper();
  mapper.enable(JsonParser.Feature.ALLOW_COMMENTS);
  return mapper.writeValueAsString(mapper.readTree(json));
}

如果您想变得更高级,可以使用 Jackson 的流式 API 来避免在内存中缓冲文档,但除非您的文档很大或性能绝对关键,否则这可能是矫枉过正。


推荐阅读