JSON压缩:JSONMinify
来源:互联网 发布:用友软件单机版 编辑:程序博客网 时间:2024/04/29 16:15
JSON压缩:JSONMinify
您的评价: 3.5
0收藏
JSONMinify 移除了 JSON 或者 JSON+C(JSON+C = JSON with comments) 文档中的所有空白和注释,实现对 JSON 内容的最小化压缩。实现无开销和近乎完美的表现。这个包只有53行源码:
public class JSONMinify { public static String minify(String jsonString) { boolean in_string = false; boolean in_multiline_comment = false; boolean in_singleline_comment = false; char string_opener = 'x'; // unused value, just something that makes compiler happy StringBuilder out = new StringBuilder(); for (int i = 0; i < jsonString.length(); i++) { // get next (c) and next-next character (cc) char c = jsonString.charAt(i); String cc = jsonString.substring(i, Math.min(i+2, jsonString.length())); // big switch is by what mode we're in (in_string etc.) if (in_string) { if (c == string_opener) { in_string = false; out.append(c); } else if (c == '\\') { // no special treatment needed for \\u, it just works like this too out.append(cc); ++i; } else out.append(c); } else if (in_singleline_comment) { if (c == '\r' || c == '\n') in_singleline_comment = false; } else if (in_multiline_comment) { if (cc.equals("*/")) { in_multiline_comment = false; ++i; } } else { // we're outside of the special modes, so look for mode openers (comment start, string start) if (cc.equals("/*")) { in_multiline_comment = true; ++i; } else if (cc.equals("//")) { in_singleline_comment = true; ++i; } else if (c == '"' || c == '\'') { in_string = true; string_opener = c; out.append(c); } else if (!Character.isWhitespace(c)) out.append(c); } } return out.toString(); }}
0 0
- JSON压缩:JSONMinify
- json 文件遍历压缩
- JS格式化/压缩JSON数据
- loadrunner 发送gzip压缩json格式
- loadrunner 发送gzip压缩json格式
- Rails 支持 Response 数据 GZip 压缩 json
- 将数据表DataTable转为压缩JSON格式
- php json数据使用gzip压缩输出
- volley post请求 gzip压缩 json 传输
- Nginx gzip对json数据的压缩
- 在线Json格式化、在线格式化Json代码、Json代码美化器、Json在线压缩、Json \uxxxx格式解码
- 尝试对struts2返回的JSON数据进行压缩
- Apache页面压缩配置问题导致json数据传输时间延长
- HTML/CSS/Javascript/json代码在线压缩&格式化常用工具
- Apache页面压缩配置问题导致json数据传输时间延长
- Asp.net WebAPi gzip压缩和json格式化
- 自动更新打包压缩Json并上传svn的bat脚本
- java服务器对json数据进行gzip压缩
- 多位数乘一位数
- 多乘二 ?
- 删除有序链表中的重复节点
- 作业
- eclipse adt 选择ndk目录时不识别,出现“Not a valid NDK directory”
- JSON压缩:JSONMinify
- Git常用命令总结
- 配置freeglut和glew
- Android依赖注入:Dagger、RoboGuice和ButterKnife
- Android Stuido快捷键
- Fresco 框架配置说明文档(更新中)
- Android内/外部存储文件读写操作总结
- C++需要记住的一些点
- 修改Mac命令提示符