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

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

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":""

}

转载地址:http://pycpo.baihongyu.com/

你可能感兴趣的文章
xsi:schemaLocation详解
查看>>
Perl如何读写文件
查看>>
我的友情链接
查看>>
Hadoop源代码分析(四零)
查看>>
系统还原后无法打开资源管理器解决方法
查看>>
20个开源项目托管站点推荐
查看>>
windows系统启动缓慢解决办法
查看>>
蝙蝠侠最新截图----光影的典型例证
查看>>
PHP的FOREACH作用域笔记
查看>>
Linux中的内存管理
查看>>
20121227-----------广源B---------RIP协议V1编写动态路由---标题要长才有人注意
查看>>
python中针对序列A是否包含序列B的各种处理
查看>>
SNMP4J与ObjectSNMP对比分析之我见
查看>>
门面模式(Facade Pattern )
查看>>
【转】msysgit简单使用教程
查看>>
Virtualbox虚拟机安装 CentOS 5.3 DVD 版
查看>>
sql命令(二)-数据类型与操作数据表
查看>>
Java无死角测试
查看>>
Bazel教程:构建iOS应用[翻译]
查看>>
jQuery的deferred对象学习笔记
查看>>