diff --git a/api/src/main/java/jakarta/json/JsonConfig.java b/api/src/main/java/jakarta/json/JsonConfig.java index 49c794b8..66fab26f 100644 --- a/api/src/main/java/jakarta/json/JsonConfig.java +++ b/api/src/main/java/jakarta/json/JsonConfig.java @@ -23,6 +23,27 @@ */ public final class JsonConfig { + /** + * Configuration property to generate JSON prettily. All providers + * must support this property. The value of the property could be + * be anything. + */ + String PRETTY_PRINTING = "jakarta.json.stream.JsonGenerator.prettyPrinting" ; + + /** + * Configuration property to generate NaN, +Infinity and -Infinity as nulls. + * + * @since 2.1 + */ + String WRITE_NAN_AS_NULLS = "jakarta.json.stream.JsonGenerator.writeNanAsNulls"; + + /** + * Configuration property to generate NaN, +Infinity and -Infinity as Strings. + * + * @since 2.1 + */ + String WRITE_NAN_AS_STRINGS = "jakarta.json.stream.JsonGenerator.writeNanAsStrings"; + /** * Configuration property to define the strategy for handling duplicate keys. * diff --git a/api/src/main/java/jakarta/json/stream/JsonGenerator.java b/api/src/main/java/jakarta/json/stream/JsonGenerator.java index f253ee2d..0a2cecd8 100644 --- a/api/src/main/java/jakarta/json/stream/JsonGenerator.java +++ b/api/src/main/java/jakarta/json/stream/JsonGenerator.java @@ -138,12 +138,6 @@ * @see JsonGeneratorFactory */ public interface JsonGenerator extends Flushable, /*Auto*/Closeable { - /** - * Configuration property to generate JSON prettily. All providers - * must support this property. The value of the property could be - * be anything. - */ - String PRETTY_PRINTING = "jakarta.json.stream.JsonGenerator.prettyPrinting" ; /** * Writes the JSON start object character. It starts a new child object @@ -336,7 +330,9 @@ public interface JsonGenerator extends Flushable, /*Auto*/Closeable { * @return this generator * @throws jakarta.json.JsonException if an i/o error occurs (IOException * would be cause of JsonException) - * @throws NumberFormatException if the value is Not-a-Number (NaN) or infinity. + * @throws NumberFormatException if the value is Not-a-Number (NaN) or infinity + * when {@link jakarta.json.JsonConfig#WRITE_NAN_AS_NULLS} and/or + * {@link jakarta.json.JsonConfig#WRITE_NAN_AS_STRINGS} is not set. * @throws JsonGenerationException if this method is not called within an * object context */ @@ -485,7 +481,9 @@ public interface JsonGenerator extends Flushable, /*Auto*/Closeable { * would be cause of JsonException) * @throws JsonGenerationException if this method is not called within an * array or root context. - * @throws NumberFormatException if the value is Not-a-Number (NaN) or infinity. + * @throws NumberFormatException if the value is Not-a-Number (NaN) or infinity + * when {@link jakarta.json.JsonConfig#WRITE_NAN_AS_NULLS} and/or + * {@link jakarta.json.JsonConfig#WRITE_NAN_AS_STRINGS} is not set. */ JsonGenerator write(double value);