当前位置:   article > 正文

IDEA toString方法输出JSON格式_idea tostring json

idea tostring json

前言

IDEA中toString方法默认使用的是 属性名=属性值 ,这一格式进行进行属性输出,调用toString方法后生成的字符串不如JSON格式便于查看,IDEA提供了自定义模板的的能力,我们借助这一功能,可以将toString方法自定义成我们需要的JSON格式,步骤如下

  1. 任意代码位置Alt+Insert 打开如下界面,并选择toString()

在这里插入图片描述

  1. 点击setting按钮打开toString方法设置页面,如下
    在这里插入图片描述
  2. 点击 + 号即可添加toString模板,命名为JSON后点击OK,此时页面如下
    在这里插入图片描述
  3. 复制以下代码到右侧空白处保存
public java.lang.String toString() {
final java.lang.StringBuilder sb = new java.lang.StringBuilder();
sb.append("{")
#if ( $class.hasSuper )
.append("\"super\":").append(super.toString()).append(", ")
#end
#set ($i = 0)
#foreach ($member in $members)
    #if ($i == 0)
    .append("\"$member.name\":")##
    #else
    .append(", \"$member.name\":")##
    #end
    #if ($member.primitiveArray || $member.objectArray)
    .append(java.util.Arrays.toString($member.name))
    #else
    .append($member.accessor)
    #end
    #set ($i = $i + 1)
#end
.append('}');
return sb.toString();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  1. 以上代码中,4、5、6三行表示调用父类的toString方法,输出父类中的属性,如果不需要可自行删除

  2. 确认代码无误之后,点击OK即可保存

  3. 返回代码后再次Alt+Insert按钮,并选择toString(),之后手动选择toString的模板为刚才新建的JSON模板,最后点击OK
    在这里插入图片描述

  4. 生成toString方法如下:
    Person父类:

 @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder();
        sb.append("{")
                .append("\"gender\":").append(gender)
                .append(", \"name\":").append(name)
                .append(", \"age\":").append(age)
                .append('}');
        return sb.toString();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

调用toString方法输出如下:

{"gender":, "name":小红, "age":12}
  • 1

Student子类:

  @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder();
        sb.append("{")
                .append("\"super\":").append(super.toString()).append(", ")
                .append("\"grade\":").append(grade)
                .append(", \"clazz\":").append(clazz)
                .append(", \"setList\":").append(setList)
                .append('}');
        return sb.toString();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

调用toString方法输出如下:

{"super":{"gender":, "name":小红, "age":12}, "grade":7年级, "clazz":1, "setList":[1, 2]}
  • 1
  1. 写在最后

因为是简单的toString输出,所以并未定义成很严格的json格式,比如,字符串类型的值,输出未加双引号,但是已经能够很清楚的表现出具体的结构了,所以也就没有纠结那么多了,如果有严格要求的小伙伴,可以自行修改模板以达到想要的效果

如果该教程可以满足您的需求,请给个赞,谢谢 [\抱拳]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/950594
推荐阅读
相关标签
  

闽ICP备14008679号