@Override
    public String toString () {
        final StringBuilder sb = new StringBuilder("{\n");

        for (final Map.Entry<String,Value<?>> me : value.entrySet()) {
            sb.append("  \"");
            sb.append(me.getKey());
            sb.append("\":");
            sb.append(me.getValue().toString().replace("\n", "\n  "));
            sb.append(",\n");
        }

        return sb.append('}').toString();
    }