private static StringBuilder quoteFieldValue(Object o, int indent) { if (o == null) return new StringBuilder(NULL_LITERAL); if (o instanceof Number) return new StringBuilder(o.toString()); if (o instanceof MyJSON) return ((MyJSON)o).asString(indent); return quoted(o.toString()); }
@Override public StringBuilder asString(int indent) { StringBuilder buf = new StringBuilder().append(ARRAY_START); StringBuilder tab = MyJSONObject.newIndent(indent+1); for (Object o : _members) { if (buf.length() > 1) buf.append(MEMBER_SEPARATOR); buf.append(NEWLINE).append(tab); if (o instanceof MyJSON) buf.append(((MyJSON)o).asString(indent+1)); else buf.append(o); } buf.append(NEWLINE) .append(MyJSONObject.newIndent(indent)) .append(ARRAY_END); return buf; } }
@Override public StringBuilder asString(int indent) { StringBuilder buf = new StringBuilder().append(ARRAY_START); StringBuilder tab = MyJSONObject.newIndent(indent+1); for (Map.Entry<Object, Object> e : _entries.entrySet()) { if (buf.length() > 1) buf.append(MEMBER_SEPARATOR); buf.append(NEWLINE).append(tab); Object key = e.getKey(); if (key instanceof MyJSON) { buf.append(((MyJSON)key).asString(indent+1)); } else { buf.append(key); } buf.append(VALUE_SEPARATOR); Object value = e.getValue(); if (value instanceof MyJSON) { buf.append(((MyJSON)value).asString(indent+2)); } else { buf.append(value); } } buf.append(NEWLINE) .append(MyJSONObject.newIndent(indent)) .append(ARRAY_END); return buf; } }