Introduce a visitor pattern for the Json values and use it for the JsonWriter.