Skip to content

Instantly share code, notes, and snippets.

@lourencomcviana
Forked from jenslohmann/toString Generator
Last active June 19, 2020 19:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lourencomcviana/4d3bfcc192ca0c48901d699034da7707 to your computer and use it in GitHub Desktop.
Save lourencomcviana/4d3bfcc192ca0c48901d699034da7707 to your computer and use it in GitHub Desktop.
Java toString() generator for IntelliJ IDEA that generates JSON
public java.lang.String toString() {
#if ( $members.size() > 0 )
#set ( $i = 0 )
return "{\"_class\":\"$classname\", " +
#foreach( $member in $members )
#set ( $i = $i + 1 )
#if ( $i == $members.size() )
#set ( $postfix = "+" )
#else
#set ( $postfix = "+ "", "" + " )
#end
#if ( $member.collection )
"\"$member.name\":" + ($member.accessor == null ? "null" : java.util.Arrays.toString($member.accessor .toArray())) $postfix
#elseif ( $member.objectArray )
"\"$member.name\":" + java.util.Arrays.toString($member.accessor) $postfix
#elseif ( $member.primitiveArray )
"\"$member.name\":" + java.util.Arrays.toString($member.accessor) $postfix
#elseif ( $member.object )
#if ($member.typeQualifiedName.contains("java.lang"))
"\"$member.name\":" + ($member.accessor == null ? "null" : "\"" + $member.accessor + "\"" ) $postfix
#elseif ($member.typeQualifiedName.equals("java.time.LocalDateTime") )
"\"$member.name\":" + ($member.accessor == null ? "null" : $member.accessor .format(DateTimeFormatter.ISO_DATE_TIME)) $postfix
#elseif ($member.typeQualifiedName.equals("java.time.LocalDate") )
"\"$member.name\":" + ($member.accessor == null ? "null" : $member.accessor .format(DateTimeFormatter.ISO_LOCAL_DATE)) $postfix
#else
"\"$member.name\":" + ($member.accessor == null ? "null" : $member.accessor .toString().replaceAll("\"","'") ) $postfix
#end
#else
"\"$member.name\":\"" + $member.accessor + "\"" $postfix
#end
#end
"}";
#else
return "{\"_class\":\"$classname\"}";
#end
}
@lourencomcviana
Copy link
Author

added conversion to localdate, localdatetime and mitigated errors converting from strings with double quotes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment