Idea中实现toJson()形式的toString()
§1 代码
public java.lang.String toString() {
final java.lang.StringBuilder sb = new java.lang.StringBuilder("{");
#set ($i = 0)
#foreach ($member in $members)
#if ($i == 0) sb.append( "#else sb.append(",#end\"$member.name\":")##
#if ($member.primitiveArray || $member.objectArray) .append(java.util.Arrays.toString($member.name));
#elseif ($member.string || $member.date);
if(null==$member.accessor)sb.append("null");else sb.append('\"').append($member.accessor).append('\"');
#else .append($member.accessor);
#end
#set ($i = $i + 1)
#end
sb.append('}');
return sb.toString();
}
§2 效果
说明:
在可能出现null值的地方会比较怪,但这样实现可以避免xx:'null'的情况,其输出可以直接作为gson序列化结果。
不使用json工具的原因是,在一些场景,比如访问量很大的某服务化接口里,需要使用toString代替json序列化,因此,直接统一
可能出现的问题,
1 非自建类,且toString实现不满足json格式的
2 继承了父类,且父类里包含了需要序列化的字段的(生成方法是注意选择可以规避)