完美打印JSON
来源:互联网 发布:linux rhel 环境变量 编辑:程序博客网 时间:2024/05/22 02:03
package java2.format;import com.google.common.base.Strings;import com.google.common.collect.Lists;import org.apache.commons.io.FileUtils;import org.apache.commons.lang3.StringUtils;import java.io.File;import java.io.IOException;import java.nio.charset.Charset;import java.util.ArrayList;import java.util.List;/** * Created by fhqplzj on 17-2-23 at 下午12:08. */public class PrettyJSON { public static List<String> formatJSON(String s) { s = StringUtils.stripToEmpty(s); ArrayList<String> result = Lists.newArrayList(); int level = 0; StringBuilder stringBuilder = new StringBuilder(); for (char c : s.toCharArray()) { if (stringBuilder.length() > 0 && stringBuilder.charAt(stringBuilder.length() - 1) == '\n') { stringBuilder.append(Strings.repeat("\t", level)); /*去掉每一行开头的空白符*/ if (StringUtils.isBlank(Character.toString(c))) { continue; } } switch (c) { case '[': case '{': stringBuilder.append(c).append('\n'); level++; break; case ',': stringBuilder.append(c).append('\n'); break; case ']': case '}': stringBuilder.append('\n').append(Strings.repeat("\t", --level)).append(c); if (level == 0) { result.add(stringBuilder.toString()); stringBuilder = new StringBuilder(); } break; default: stringBuilder.append(c); } } return result; } public static List<String> formatJSON(File file) { String s = null; try { s = FileUtils.readFileToString(file, Charset.defaultCharset()); } catch (IOException e) { e.printStackTrace(); } return formatJSON(s); } public static void main(String[] args) throws IOException { List<String> result = formatJSON(new File("/tmp/json.txt")); for (int i = 0; i < result.size(); i++) { System.out.println(String.format("case %d:", i + 1)); System.out.println(StringUtils.stripToEmpty(result.get(i))); } }}
0 0
- 完美打印JSON
- Json系列之三 让你打印完美的json格式
- JSON打印
- 完美打印二叉树
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- xStream完美转换XML、JSON
- webservice学习笔记(6)--spring结合xsf拦截器
- 谷歌公司推出Cloud Spanner云计算数据库服务
- 【PAT】1016. Phone Bills
- 第三十四章 SpringBoot获取配置属性
- Android学习笔记——问题汇总
- 完美打印JSON
- 在自定义的 btrfs+subvolume 上安装 Deepin 15
- 《spring-boot学习》-01-初体验
- [BZOJ3509][CodeChef][FFT][分块]COUNTARI
- JS图片类之苹果导航效果
- 第三十五章 SpringBoot Profiles
- Java中四舍五入保留两位小数或不保留小数
- Material Design实战
- Map集合的遍历