- java.lang.Object
-
- jakarta.json.spi.JsonProvider
-
public abstract class JsonProvider extends Object
Service provider for JSON processing objects.All the methods in this class are safe for use by multiple concurrent threads.
- See Also:
ServiceLoader
-
-
Field Summary
Fields Modifier and Type Field Description static StringJSONP_PROVIDER_FACTORYThe name of the property that contains the name of the class capable of creating new JsonProvider objects.
-
Constructor Summary
Constructors Modifier Constructor Description protectedJsonProvider()Default constructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract JsonArrayBuildercreateArrayBuilder()Creates a JSON array builder.JsonArrayBuildercreateArrayBuilder(JsonArray array)Creates a JSON array builder, initialized with the specified array.JsonArrayBuildercreateArrayBuilder(Collection<?> collection)Creates a JSON array builder, initialized with the content of specifiedcollection.abstract JsonBuilderFactorycreateBuilderFactory(Map<String,?> config)Creates a builder factory for creatingJsonArrayBuilderandJsonObjectBuilderobjects.JsonPatchcreateDiff(JsonStructure source, JsonStructure target)Generates a JSON Patch (RFC 6902) from the source and targetJsonStructure.abstract JsonGeneratorcreateGenerator(OutputStream out)Creates a JSON generator for writing JSON text to a byte stream.abstract JsonGeneratorcreateGenerator(Writer writer)Creates a JSON generator for writing JSON text to a character stream.abstract JsonGeneratorFactorycreateGeneratorFactory(Map<String,?> config)Creates a generator factory for creatingJsonGeneratorinstances.JsonMergePatchcreateMergeDiff(JsonValue source, JsonValue target)Generates a JSON Merge Patch (RFC 7396) from the source and targetJsonValues which when applied to thesource, yields thetarget.JsonMergePatchcreateMergePatch(JsonValue patch)Creates JSON Merge Patch (RFC 7396) from specifiedJsonValue.abstract JsonObjectBuildercreateObjectBuilder()Creates a JSON object builder.JsonObjectBuildercreateObjectBuilder(JsonObject object)Creates a JSON object builder, initialized with the specified object.JsonObjectBuildercreateObjectBuilder(Map<String,?> map)Creates a JSON object builder, initialized with the data from specifiedmap.abstract JsonParsercreateParser(InputStream in)Creates a JSON parser from the specified byte stream.abstract JsonParsercreateParser(Reader reader)Creates a JSON parser from a character stream.abstract JsonParserFactorycreateParserFactory(Map<String,?> config)Creates a parser factory for creatingJsonParserinstances.JsonPatchcreatePatch(JsonArray array)Creates a JSON Patch (RFC 6902) from the specified operations.JsonPatchBuildercreatePatchBuilder()Creates a JSON Patch builder (RFC 6902).JsonPatchBuildercreatePatchBuilder(JsonArray array)Creates a JSON Patch builder (RFC 6902), initialized with the specified operations.JsonPointercreatePointer(String jsonPointer)Creates JSON Pointer (RFC 6901) from givenjsonPointerstring.abstract JsonReadercreateReader(InputStream in)Creates a JSON reader from a byte stream.abstract JsonReadercreateReader(Reader reader)Creates a JSON reader from a character stream.abstract JsonReaderFactorycreateReaderFactory(Map<String,?> config)Creates a reader factory for creatingJsonReaderobjects.JsonNumbercreateValue(double value)Creates a JsonNumber.JsonNumbercreateValue(int value)Creates a JsonNumber.JsonNumbercreateValue(long value)Creates a JsonNumber.JsonNumbercreateValue(Number number)Creates a JsonNumber.JsonStringcreateValue(String value)Creates a JsonString.JsonNumbercreateValue(BigDecimal value)Creates a JsonNumber.JsonNumbercreateValue(BigInteger value)Creates a JsonNumber.abstract JsonWritercreateWriter(OutputStream out)abstract JsonWritercreateWriter(Writer writer)abstract JsonWriterFactorycreateWriterFactory(Map<String,?> config)Creates a writer factory for creatingJsonWriterobjects.static JsonProviderprovider()Creates a JSON provider object.
-
-
-
Field Detail
-
JSONP_PROVIDER_FACTORY
public static final String JSONP_PROVIDER_FACTORY
The name of the property that contains the name of the class capable of creating new JsonProvider objects.- See Also:
- Constant Field Values
-
-
Method Detail
-
provider
public static JsonProvider provider()
Creates a JSON provider object. Implementation discovery consists of following steps:- If the system property "jakarta.json.provider" exists, then its value is assumed to be the provider factory class. This phase of the look up enables per-JVM override of the JsonProvider implementation.
- The provider is loaded using the
ServiceLoader.load(Class)method. - If all the steps above fail, then the rest of the look up is unspecified. That said, the recommended behavior is to simply look for some hard-coded platform default Jakarta JSON Processing implementation. This phase of the look up is so that a platform can have its own Jakarta JSON Processing implementation as the last resort.
- Returns:
- a JSON provider
- See Also:
ServiceLoader
-
createParser
public abstract JsonParser createParser(Reader reader)
Creates a JSON parser from a character stream.- Parameters:
reader- i/o reader from which JSON is to be read- Returns:
- a JSON parser
-
createParser
public abstract JsonParser createParser(InputStream in)
Creates a JSON parser from the specified byte stream. The character encoding of the stream is determined as defined in RFC 7159 .- Parameters:
in- i/o stream from which JSON is to be read- Returns:
- a JSON parser
- Throws:
JsonException- if encoding cannot be determined or i/o error (IOException would be cause of JsonException)
-
createParserFactory
public abstract JsonParserFactory createParserFactory(Map<String,?> config)
Creates a parser factory for creatingJsonParserinstances. The factory is configured with the specified map of provider specific configuration properties. Provider implementations should ignore any unsupported configuration properties specified in the map.- Parameters:
config- a map of provider specific properties to configure the JSON parsers. The map may be empty or null- Returns:
- a JSON parser factory
-
createGenerator
public abstract JsonGenerator createGenerator(Writer writer)
Creates a JSON generator for writing JSON text to a character stream.- Parameters:
writer- a i/o writer to which JSON is written- Returns:
- a JSON generator
-
createGenerator
public abstract JsonGenerator createGenerator(OutputStream out)
Creates a JSON generator for writing JSON text to a byte stream.- Parameters:
out- i/o stream to which JSON is written- Returns:
- a JSON generator
-
createGeneratorFactory
public abstract JsonGeneratorFactory createGeneratorFactory(Map<String,?> config)
Creates a generator factory for creatingJsonGeneratorinstances. The factory is configured with the specified map of provider specific configuration properties. Provider implementations should ignore any unsupported configuration properties specified in the map.- Parameters:
config- a map of provider specific properties to configure the JSON generators. The map may be empty or null- Returns:
- a JSON generator factory
-
createReader
public abstract JsonReader createReader(Reader reader)
Creates a JSON reader from a character stream.- Parameters:
reader- a reader from which JSON is to be read- Returns:
- a JSON reader
-
createReader
public abstract JsonReader createReader(InputStream in)
Creates a JSON reader from a byte stream. The character encoding of the stream is determined as described in RFC 7159.- Parameters:
in- a byte stream from which JSON is to be read- Returns:
- a JSON reader
-
createWriter
public abstract JsonWriter createWriter(Writer writer)
- Parameters:
writer- to which JSON object or array is written- Returns:
- a JSON writer
-
createWriter
public abstract JsonWriter createWriter(OutputStream out)
Creates a JSON writer to write a JSONobjectorarraystructure to the specified byte stream. Characters written to the stream are encoded into bytes using UTF-8 encoding.- Parameters:
out- to which JSON object or array is written- Returns:
- a JSON writer
-
createWriterFactory
public abstract JsonWriterFactory createWriterFactory(Map<String,?> config)
Creates a writer factory for creatingJsonWriterobjects. The factory is configured with the specified map of provider specific configuration properties. Provider implementations should ignore any unsupported configuration properties specified in the map.- Parameters:
config- a map of provider specific properties to configure the JSON writers. The map may be empty or null- Returns:
- a JSON writer factory
-
createReaderFactory
public abstract JsonReaderFactory createReaderFactory(Map<String,?> config)
Creates a reader factory for creatingJsonReaderobjects. The factory is configured with the specified map of provider specific configuration properties. Provider implementations should ignore any unsupported configuration properties specified in the map.- Parameters:
config- a map of provider specific properties to configure the JSON readers. The map may be empty or null- Returns:
- a JSON reader factory
-
createObjectBuilder
public abstract JsonObjectBuilder createObjectBuilder()
Creates a JSON object builder.- Returns:
- a JSON object builder
-
createObjectBuilder
public JsonObjectBuilder createObjectBuilder(JsonObject object)
Creates a JSON object builder, initialized with the specified object.- Parameters:
object- the initial JSON object in the builder- Returns:
- a JSON object builder
- Since:
- 1.1
-
createObjectBuilder
public JsonObjectBuilder createObjectBuilder(Map<String,?> map)
Creates a JSON object builder, initialized with the data from specifiedmap. If the @{code map} containsOptionals then resulting JSON object builder contains the key from themaponly if theOptionalis not empty.- Parameters:
map- the initial object in the builder- Returns:
- a JSON object builder
- Throws:
IllegalArgumentException- if the value from themapcannot be converted to the correspondingJsonValue- Since:
- 1.1
-
createArrayBuilder
public abstract JsonArrayBuilder createArrayBuilder()
Creates a JSON array builder.- Returns:
- a JSON array builder
-
createArrayBuilder
public JsonArrayBuilder createArrayBuilder(JsonArray array)
Creates a JSON array builder, initialized with the specified array.- Parameters:
array- the initial JSON array in the builder- Returns:
- a JSON array builder
- Since:
- 1.1
-
createPointer
public JsonPointer createPointer(String jsonPointer)
Creates JSON Pointer (RFC 6901) from givenjsonPointerstring.- An empty
jsonPointerstring defines a reference to the target itself. - If the
jsonPointerstring is non-empty, it must be a sequence of '/' prefixed tokens.
- Parameters:
jsonPointer- the JSON Pointer string- Returns:
- a JSON Pointer
- Throws:
NullPointerException- ifjsonPointerisnullJsonException- ifjsonPointeris not a valid JSON Pointer- Since:
- 1.1
- An empty
-
createPatchBuilder
public JsonPatchBuilder createPatchBuilder()
Creates a JSON Patch builder (RFC 6902).- Returns:
- a JSON Patch builder
- Since:
- 1.1
-
createPatchBuilder
public JsonPatchBuilder createPatchBuilder(JsonArray array)
Creates a JSON Patch builder (RFC 6902), initialized with the specified operations.- Parameters:
array- the initial patch operations- Returns:
- a JSON Patch builder
- Since:
- 1.1
-
createPatch
public JsonPatch createPatch(JsonArray array)
Creates a JSON Patch (RFC 6902) from the specified operations.- Parameters:
array- patch operations- Returns:
- a JSON Patch
- Since:
- 1.1
-
createDiff
public JsonPatch createDiff(JsonStructure source, JsonStructure target)
Generates a JSON Patch (RFC 6902) from the source and targetJsonStructure. The generated JSON Patch need not be unique.- Parameters:
source- the sourcetarget- the target, must be the same type as the source- Returns:
- a JSON Patch which when applied to the source, yields the target
- Since:
- 1.1
-
createMergePatch
public JsonMergePatch createMergePatch(JsonValue patch)
Creates JSON Merge Patch (RFC 7396) from specifiedJsonValue.- Parameters:
patch- the patch- Returns:
- a JSON Merge Patch
- Since:
- 1.1
-
createMergeDiff
public JsonMergePatch createMergeDiff(JsonValue source, JsonValue target)
Generates a JSON Merge Patch (RFC 7396) from the source and targetJsonValues which when applied to thesource, yields thetarget.- Parameters:
source- the sourcetarget- the target- Returns:
- a JSON Merge Patch
- Since:
- 1.1
-
createArrayBuilder
public JsonArrayBuilder createArrayBuilder(Collection<?> collection)
Creates a JSON array builder, initialized with the content of specifiedcollection. If the @{code collection} containsOptionals then resulting JSON array builder contains the value from thecollectiononly if theOptionalis not empty.- Parameters:
collection- the initial data for the builder- Returns:
- a JSON array builder
- Throws:
IllegalArgumentException- if the value from thecollectioncannot be converted to the correspondingJsonValue- Since:
- 1.1
-
createBuilderFactory
public abstract JsonBuilderFactory createBuilderFactory(Map<String,?> config)
Creates a builder factory for creatingJsonArrayBuilderandJsonObjectBuilderobjects. The factory is configured with the specified map of provider specific configuration properties. Provider implementations should ignore any unsupported configuration properties specified in the map.- Parameters:
config- a map of provider specific properties to configure the JSON builders. The map may be empty or null- Returns:
- a JSON builder factory
-
createValue
public JsonString createValue(String value)
Creates a JsonString.- Parameters:
value- a JSON string- Returns:
- the JsonString for the string
- Since:
- 1.1
-
createValue
public JsonNumber createValue(int value)
Creates a JsonNumber.- Parameters:
value- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 1.1
-
createValue
public JsonNumber createValue(long value)
Creates a JsonNumber.- Parameters:
value- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 1.1
-
createValue
public JsonNumber createValue(double value)
Creates a JsonNumber.- Parameters:
value- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 1.1
-
createValue
public JsonNumber createValue(BigDecimal value)
Creates a JsonNumber.- Parameters:
value- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 1.1
-
createValue
public JsonNumber createValue(BigInteger value)
Creates a JsonNumber.- Parameters:
value- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 1.1
-
createValue
public JsonNumber createValue(Number number)
Creates a JsonNumber. When it is not implemented it checks the type and delegates to an existing method that already handles that type. It throws UnsupportedOperationException in case the type is not known.- Parameters:
number- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 2.1
-
-