文章目录
- 如何对json字符串进行格式化显示
- hutool方案的示例和不足
- 使用fastjson的方案
如何对json字符串进行格式化显示
将json字符串内容进行格式化的输出显示。本文介绍 hutool的方案和alibaba 的fastjson方案
hutool方案的示例和不足
引入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.4.6</version>
</dependency>
格式化json字符串示例
String jsonStr = "[{\"username\":\"xiaowang\",\"age\":12,\"address\":\"广州\"},{\"username\":\"xiaoli\",\"age\":13,\"address\":\"深圳\"}]";
// 使用Hutool JSONUtil.parse方法解析JSON字符串
Object jsonObject = JSONUtil.parse(jsonStr);
// 使用JSONUtil.toJsonPrettyStr方法格式化JSON字符串
String formattedJsonStr = JSONUtil.toJsonPrettyStr(jsonObject);
System.out.println(formattedJsonStr);
输出显示
使用hutool工具转换json时,输入的字符串的key顺序和最终格式化后的json格式化后的顺序的key顺序不一致。
这里主要的问题在于Object jsonObject = JSONUtil.parse(jsonStr)时,得到的顺序已经不是原来字符串的顺序了。
使用fastjson的方案
注意import 是fastjson,不是fastjson2
//content 为输入的json字符串,json对象字符串或者json数组的字符串
JSON obj = (JSON) JSON.parse(content, Feature.OrderedField);//按字符串内容的key顺序转换
//SerializerFeature.PrettyFormat 格式化,SerializerFeature.WriteMapNullValue 允许输出null
String formattedJsonStr = obj.toString(SerializerFeature.PrettyFormat,SerializerFeature.WriteMapNullValue);//格式化输出
示例1输出
示例2输出