博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java格式化json字符串输入到文本中
阅读量:6267 次
发布时间:2019-06-22

本文共 2552 字,大约阅读时间需要 8 分钟。

hot3.png

jackson格式化后的字符串没有规律,以下直接将jackson格式化后的字符串解析后存入文本

//格式化json字符串public static String formatJson(String jsonStr) {        if (null == jsonStr || "".equals(jsonStr)) return "";        StringBuilder sb = new StringBuilder();        char last = '\0';        char current = '\0';        int indent = 0;        for (int i = 0; i < jsonStr.length(); i++) {            last = current;            current = jsonStr.charAt(i);            switch (current) {                case '{':                case '[':                    sb.append(current);                    sb.append('\n');                    indent++;                    addIndentBlank(sb, indent);                    break;                case '}':                case ']':                    sb.append('\n');                    indent--;                    addIndentBlank(sb, indent);                    sb.append(current);                    break;                case ',':                    sb.append(current);                    if (last != '\\') {                        sb.append('\n');                        addIndentBlank(sb, indent);                    }                    break;                default:                    sb.append(current);            }        }        return sb.toString();    }    /**     * 添加space     * @param sb     * @param indent     * @author   xuhy     * @Date   2015-10-14 上午10:38:04     */    public static void addIndentBlank(StringBuilder sb, int indent) {        for (int i = 0; i < indent; i++) {            sb.append('\t');        }    }    //直接用字符流写入文本了. str表示已经通过上面方法格式化后的字符串    public static void writeFile(String str,File file){    	 String b=formatJson(str);    	 	    try   	    {       	      // 创建文件对象   	      //File fileText = new File("D:\\Users\\Administrator\\Desktop\\index\\tfjbp-features-sysEN.json");   	      // 向文件写入对象写入信息   	      FileWriter fw = new FileWriter(file);   	      BufferedWriter bw=new BufferedWriter(fw); 	      // 写文件         	      bw.write(b);   	      bw.flush();//强制输出下免得 en写入数据不完整 	      // 关闭   	      bw.close();  	      fw.close(); 	    }   	    catch (IOException e)   	    {   	      //   	      e.printStackTrace();   	    }      }

 

效果如下:

格式化前

{"userInfo.birthday":"Birthday","report.img":"","report.company":"","userInfo.address":"Address","newPassword":"","deptIsEnabled":"","updateUser.tel":""}

格式化后

{

    "userInfo.birthday":"Birthday",
    "report.img":"",
    "report.company":"",
    "userInfo.address":"Address",
    "newPassword":"",
    "deptIsEnabled":"",
    "updateUser.tel":""
}

转载于:https://my.oschina.net/u/3065626/blog/796865

你可能感兴趣的文章
Spark核心技术原理透视一(Spark运行原理)
查看>>
《Gradle权威指南》--Gradle任务
查看>>
IntelliJ IDEA创建文件时自动填入作者时间 定制格式
查看>>
Android app启动activity并调用onCreate()方法时都默默地干了什么?
查看>>
远程监视jboss应用java内存的配置
查看>>
前端如何接收 websocket 发送过来的实时数据
查看>>
JavaWeb下载文件response
查看>>
Laravel的三种安装方法总结
查看>>
SpringMVC加载配置Properties文件的几种方式
查看>>
C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginat...
查看>>
java 项目相关 学习笔记
查看>>
numpy opencv matlab eigen SVD结果对比
查看>>
WPF获取某控件的位置,也就是偏移量
查看>>
Boost C++ 库 中文教程(全)
查看>>
solr查询优化(实践了一下效果比较明显)
查看>>
jdk目录详解及其使用方法
查看>>
说说自己对RESTful API的理解s
查看>>
通过layout实现可拖拽自动排序的UICollectionView
查看>>
服务器错误码
查看>>
javascript中的面向对象
查看>>