一、背景:
今天有个需求,要把一个对象,转成json字符串传给h5,这个bean已经有非常悠久的历史了,如果一个一个属性手工转,将是一个不可想象的事情。那就开始想办法解决
二、解决思路:
1、因为是要求一个json字符串,首先想到了android studio中generate中的toString。
尝试使用toString转为字符串,结果得到的是
那现在要解决的就是把上面的字符串改成json字符串就好了。
2、在点击toString的时候,看到一个地方,感觉是个突破点
3、点击settings,
看到右侧的语句,感觉离成功只差一步了。
4、点击左上角的+,创建新的templates
修改语句。
public java.lang.String toString() {
#if ( $members.size() > 0 )
#set ( $i = 0 )
return "{" +
#foreach( $member in $members )
#if ( $i == 0 )
"##
#else
", ##
#end
#if ( $member.objectArray )
#if ($java_version < 5)
$member.name:" + ($member.accessor == null ? null : java.util.Arrays.asList($member.accessor)) +
#else
$member.name:" + java.util.Arrays.toString($member.accessor) +
#end
#elseif ( $member.primitiveArray && $java_version >= 5)
$member.name:" + java.util.Arrays.toString($member.accessor) +
#elseif ( $member.string )
$member.name:'" + $member.accessor + '\'' +
#else
$member.name:" + $member.accessor +
#end
#set ( $i = $i + 1 )
#end
'}';
#else
return "{}";
#end
}
5、应用、保存。搞定
6、使用
7、看效果
三、结果验证是json字符串,可以转成json对象
四、总结:
简单归纳
1、在toString的templates中新增一个template,
2、语句参考上面的语句
3、再次调用toString的时候,选用新的template