bowbahdoe/json

Make Json tree writing delegate to a Generator

bowbahdoe opened this issue · 0 comments

There is some hacky code in JsonWriter for writing out instances of Json.

    static {
        WRITERS = new IdentityHashMap<>();
        WRITERS.put(JsonNull.class, (__, out, ___) -> out.append("null"));
        WRITERS.put(JsonTrue.class, (__, out, ___) -> out.append("true"));
        WRITERS.put(JsonFalse.class, (__, out, ___) -> out.append("false"));
        WRITERS.put(LongImpl.class, (v, out, ___) -> out.append(v.toString()));
        WRITERS.put(DoubleImpl.class, (v, out, ___) -> out.append(v.toString()));
        WRITERS.put(BigIntegerImpl.class, (v, out, ___) -> out.append(v.toString()));
        WRITERS.put(BigDecimalImpl.class, (v, out, ___) -> out.append(v.toString()));
        WRITERS.put(StringImpl.class, (v, out, options) -> writeString((JsonString) v, out, options));
        WRITERS.put(ArrayImpl.class, (v, out, options) -> writeArray((JsonArray) v, out, options));
        WRITERS.put(ObjectImpl.class, (v, out, options) -> writeObject((JsonObject) v, out, options));
    }

This can probably be replaced if #4 is done, but requires that there exists a generator which can handle indentation