Какие параметры конфигурации доступны для создания JsonWriterFactory?
Посмотрите этот код, который я видел в руководстве по Java ee
/* Write formatted JSON Output */
Map<String,String> config = new HashMap<>();
config.put(JsonGenerator.PRETTY_PRINTING, "");
JsonWriterFactory factory = Json.createWriterFactory(config);
StringWriter stWriterF = new StringWriter();
try (JsonWriter jsonWriterF = factory.createWriter(stWriterF)) {
jsonWriterF.writeObject(model);
}
documentJsonFormatted = stWriterF.toString();
Мы создаем JsonWriter
записать в строковый буфер StringWriter
, Обычно мы можем просто создать JsonWriter
прямо из Json
класс, но это не форматирует объект JSON должным образом. Мы указываем config
переменная к createWriterFactory
Метод, насколько я знаю, это единственная конфигурация, которую мы можем создать. Какие другие параметры конфигурации мы можем вставить в config
карта?
1 ответ
Единственные постоянные значения полей, определенные в спецификации JSON-P, - это те, которые вы уже перечислили (JsonGenerator.PRETTY_PRINTING
), в соответствии с:
https://javadoc.io/doc/javax.json/javax.json-api/1.1.2
Какую красивую печать вы ищете? И какую реализацию JSON-P вы используете?
Я попробовал следующий код:
JsonObject model = Json.createObjectBuilder()
.add("foo", "bar")
.add("boo", "baz")
.build();
/* Write formatted JSON Output */
Map<String, String> config = new HashMap<>();
config.put(JsonGenerator.PRETTY_PRINTING, "");
JsonWriterFactory factory = Json.createWriterFactory(config);
StringWriter stWriterF = new StringWriter();
try (JsonWriter jsonWriterF = factory.createWriter(stWriterF)) {
jsonWriterF.writeObject(model);
}
System.out.println(stWriterF);
В результате получилась довольно напечатанная строка JSON:
{
"foo": "bar",
"boo": "baz"
}
(Здесь я использовал org.glassfish:javax.json:1.1.+
как мой JSON-P импл)