IDEA 自定义ToString方法的输出为Json格式

IDEA 自定义ToString方法的输出为Json格式

有时候我们需要方便查看数据,这个时候需要定制格式化输出的形式。

网上找到的几种都没有解决A类有继承B类的情况,即需要打印super.toString()。这时候我们可以按照下面代码写一个自定义的template。

步骤1

在你类文件里调出tostring界面,点击tostring


image.png

步骤2

点击settings选项

image.png

步骤3

1处点击+号新增加一个,写上你给这个template起的名字,然后填入格式化模板代码,点击ok保存。

public java.lang.String toString() {
return "{\"$classname\":{"
#set ($i = 0)
#foreach ($member in $members)#if ($i == 0)
+"#####
#else
+",####
#end#if ($member.string || $member.date)
\"$member.name\":\""
#else
\"$member.name\":"
#end#if ($member.primitiveArray || $member.objectArray)
+java.util.Arrays.toString($member.name)
#elseif ($member.string || $member.date)
+$member.accessor+'\"'
#else
+$member.accessor
#end#set ($i = $i + 1)
#end
#if ( $class.hasSuper )
  +"},\"super-$classname\":" +super.toString()+"}";
   #else
   +"}}";
#end

}

步骤4

此时你重新调出tostring方法格式化时,界面提示的是你选择的template,点击ok,选择它进行格式化

image.png

image.png

步骤5

最后,logcat已经可以输出这个json了


image.png

安装Chrome插件JSON-handle,或者用其它在线json工具,然后可以更方便分析现在打印出来的日志信息了。

image.png

附录

模板代码的语法参照Velocity语法,根据需要可自行修改。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。