java - 在java中从JSON中删除评论的最快方法?
问题描述
在互联网上到处寻找可靠的 json 注释剥离器和压缩器的 java 端口,但大多数都是有缺陷的设计(不支持多行注释或字符串中的注释模式)。
所以在我匆忙中,我把这个放在一起:https ://gist.github.com/justisr/abab012af3ef399908798a687185d49a
对我拥有的现有 json 文件进行了测试,一切都按预期进行,但我并不满意。真的没有更快/标准的方法从 json 字符串中剥离注释吗?
以前我使用的是https://github.com/getify/JSON.minify但它很慢,而且文件末尾的常规 // 注释再次破坏了它,因此我绝望了。
解决方案
最简单的事情是通过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 来避免在内存中缓冲文档,但除非您的文档很大或性能绝对关键,否则这可能是矫枉过正。
推荐阅读
- python - 解决一个列表是否充当另一个列表的子列表
- coq - 用 Ltac 或 Tactic Notation 从右到左重写
- python - 仅当它与其他匹配组不同时才匹配组
- mysql - django.core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错
- python - 熊猫不根据条件选择列
- telegram - Telegram bot webhook 没有收到新的聊天成员用户名
- javascript - 在 Google 表格中使用命名范围作为变量
- angular - 离子将图像从相机上传到服务器,并带有额外的表单数据
- flutter - 在 Statelss 类上使用函数定义小部件组合的场景是合理的?
- mysql - ModuleNotFoundError:没有名为 'MySQLdb' 的模块与 django 1.10.5