Json的格式化
来源:互联网 发布:淘宝白底图片怎么拍 编辑:程序博客网 时间:2024/05/18 03:31
public class forMaterJson {
public static void main(String[] args) {
String jsonStr ="{name:网站,num:3,sites: ["+
" { name:Google, info:[ Android, Google 搜索, Google 翻译 ] },"+
" { name:Runoob, info:[ 菜鸟教程, 菜鸟工具, 菜鸟微信 ] },"
+ "{ name:Taobao, info:[ 淘宝, 网购 ] }]"
+"}";
printJson(jsonStr);
}
public static void printJson(String jsonStr){
System.out.println(formatJson(jsonStr));
}
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();
}
private static void addIndentBlank(StringBuilder sb, int indent) {
for (int i = 0; i < indent; i++) {
sb.append('\t');
}
}
}
public static void main(String[] args) {
String jsonStr ="{name:网站,num:3,sites: ["+
" { name:Google, info:[ Android, Google 搜索, Google 翻译 ] },"+
" { name:Runoob, info:[ 菜鸟教程, 菜鸟工具, 菜鸟微信 ] },"
+ "{ name:Taobao, info:[ 淘宝, 网购 ] }]"
+"}";
printJson(jsonStr);
}
public static void printJson(String jsonStr){
System.out.println(formatJson(jsonStr));
}
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();
}
private static void addIndentBlank(StringBuilder sb, int indent) {
for (int i = 0; i < indent; i++) {
sb.append('\t');
}
}
}
阅读全文
0 0
- Json的格式化
- 格式化json串的网址
- 一个json格式化的网站
- 格式化json传送的时间
- json格式化的網站
- Notepad++的Json格式化插件
- Notepad++的Json格式化插件
- Json 格式化
- json格式化
- json 格式化
- json格式化
- JSON格式化
- 格式化json
- 原生js格式化json和格式化xml的方法
- Notepad++的Json格式化插件和xml格式化插件
- 漂亮的格式化好的JSON
- json数据的格式化的校验工具
- golang的json的时间格式化解决方案
- Kafka 设计与原理详解
- boost正则库
- 百度地图加载百度js 出现 BMap is not defined
- Android 使用RecyclerView实现快速索引
- C++ BMP图片转换为PNG图片
- Json的格式化
- 为什么全新的Open Container Initiative标准是软件行业的里程碑?
- ios 跳转AppStore的两种方法,以及遇到的坑
- MVP设计模式
- CAS客户端请求重定向次数过多导致请求失败
- td文字太多撑开了table
- 文章标题
- 分布式协调服务zookeeper02-zookeeper核心工作机制以及api代码演示
- 禁用组合键