Package jakarta.json.spi
Class JsonProvider
- 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
 
 
 - 
 
 -