一、背景:
今天有个需求,要把一个对象,转成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