最近做项目需要自动生成一个json脚本,生成的脚本如果直接打印出来,是一个长长的字符串,不太值观,需要格式化一下。
由于这个脚本中的参数有些是公司内部的服务器密码之类东西,所以不想通过在线的json格式化工具,找了一下发现原理json工具包自身本来就有格式化输出功能。
我用的json工具是阿里的fastjson,依赖包如下
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
编写工具类
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class FormatUtils {
public static void main(String[] args) {
String jsonStr = "{\"job\":{\"content\":[{\"reader\":{\"parameter\":{\"password\":\"123456\"}}}]}}";
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
System.out.println("格式化前:" + jsonObject);
System.out.println("格式化后:");
jsonFormat(jsonObject);
}
public static void jsonFormat(Object jsonObject){
String jsonFormatString = JSON.toJSONString(jsonObject, SerializerFeature.PrettyFormat,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteDateUseDateFormat);
System.out.println(jsonFormatString);
}
}
这样就可以一步到位直接拿到格式化后的json串了,便于自己在应用时手动修改和校验参数。