在 java 中从 JSON 中删除评论的最快方法?

Fastest means of removing comments from JSON in java?

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

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

在现有的 json 文件上对其进行了测试,一切都按预期进行,但我并不满意。 真的没有 faster/standard 从 json 字符串中删除注释的方法吗?

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

最简单的方法是 运行 您的 JSON 通过 Jackson:

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 来避免在内存中缓冲文档,但除非您的文档很大或性能绝对关键,否则这可能有点矫枉过正。