Skip to content

Instantly share code, notes, and snippets.

@hxreborn
Last active January 18, 2022 15:11
Show Gist options
  • Select an option

  • Save hxreborn/46def47517cbfe9009a7d71ff6c584d7 to your computer and use it in GitHub Desktop.

Select an option

Save hxreborn/46def47517cbfe9009a7d71ff6c584d7 to your computer and use it in GitHub Desktop.
IntelliJ IDEA toString templates for JSON with null checker
public java.lang.String toString() {
final java.lang.StringBuilder sb = new java.lang.StringBuilder("{");
#set ($i = 0)
#foreach ($member in $members)
#if ($member.string)
if (org.apache.commons.lang3.StringUtils.isNotBlank(($member.accessor))) {
#elseif ($member.date || $member.primitive || $member.numeric || $member.boolean)
if (($member.accessor) != null) {
#elseif (($member.stringArray))
if (($member.accessor) != null && ($member.accessor).length > 0) {
#elseif($member.list)
if ($member.accessor != null && !($member.accessor).isEmpty()) {
#end
#if ($i == 0)
sb.append("##
#else
sb.append(",##
#end
#if ($member.stringArray)
\"$member.name\":");
#elseif ($member.string || $member.date)
\"$member.name\":\"")
#elseif($member.map||$member.collection)
\"$member.name\":");
#else
\"$member.name\":")
#end
#if ($member.stringArray)
sb.append("[");
final int stringArrayLength = ($member.accessor).length;
for (int i = 0; i < stringArrayLength; i++) {
sb.append("\"").append(($member.accessor)[i]).append("\"");
if (i < stringArrayLength - 1) {
sb.append(",");
} else {
sb.append("]");
}
}
}
#elseif ($member.primitiveArray || $member.objectArray)
.append(java.util.Arrays.toString($member.accessor));
#elseif ($member.string || $member.date)
.append($member.accessor).append('\"'); }
#elseif($member.list)
sb.append("[");
final int listSize = ($member.accessor).size();
for (int i = 0; i < listSize; i++) {
final Object listValue=($member.accessor).get(i);
if (listValue instanceof CharSequence) {
sb.append("\"").append(java.util.Objects.toString(listValue,"")).append("\"");
} else {
sb.append(java.util.Objects.toString(listValue,""));
}
if (i < listSize - 1) {
sb.append(",");
} else {
sb.append("]");
}
}
}
#elseif($member.map)
if (($member.accessor) != null && !($member.accessor).isEmpty()) {
sb.append("{");
final Set<?> mapKeySet=($member.accessor).keySet();
for (java.lang.Object mapKey: mapKeySet) {
final Object mapValue=($member.accessor).get(mapKey);
sb.append("\"").append(mapKey).append("\":\"").append(java.util.Objects.toString(mapValue,"")).append("\",");
}
sb.replace(sb.length() - 1, sb.length(), "}");
} else {
sb.append("{}");
}
#elseif($member.collection)
if (($member.accessor) != null && !($member.accessor).isEmpty()) {
sb.append("[");
for (java.lang.Object collectionValue: $member.accessor) {
sb.append("\"").append(java.util.Objects.toString(collectionValue,"")).append("\",");
}
sb.replace(sb.length() - 1, sb.length(), "]");
} else {
sb.append("[]");
}
#else
.append($member.accessor);
#end
#set ($i = $i + 1)
#end
sb.append('}');
return sb.toString();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment