背景
想要将一个对象以json的格式输出到日志中
处理
使用
log,info(JSONObject.toJSONString(invokeLog, true));
或者
log,info(JSONObject.toJSONString(invokeLog, SerializerFeature.PrettyFormat));
第一种实际也是调用的第二种。
public class InvokeLog {
private int id;
private String data;
}
问题
但是问题出来了,这个对象有一个属性(data)是String类型,而这个String属性又是json字符串,使用上述方式的JSON会将这个属性当做String,输出并不会进行换行
解决办法
1、重写类的tostring方法
2、猜想应该有个注解可以让这个String类型的属性以json的形式输出
找了一下,果然!!!
在字段上加上
public class InvokeLog {
private int id;
@JSONField(jsonDirect = true)
private String data;
}