Class JsonProvider
java.lang.Object
jakarta.json.spi.JsonProvider
Service provider for JSON processing objects.
All the methods in this class are safe for use by multiple concurrent threads.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final StringA constant representing the name of the defaultJsonProviderimplementation class.static final StringThe name of the property that contains the name of the class capable of creating new JsonProvider objects.private static final LoggerA loggerprivate static final StringOSGI aware service loader by HK2 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static voidcheckPackageAccess(String className) Make sure that the current thread has an access to the package of the given name.abstract JsonArrayBuilderCreates a JSON array builder.createArrayBuilder(JsonArray array) Creates a JSON array builder, initialized with the specified array.createArrayBuilder(Collection<?> collection) Creates a JSON array builder, initialized with the content of specifiedcollection.abstract JsonBuilderFactorycreateBuilderFactory(Map<String, ?> config) Creates a builder factory for creatingJsonArrayBuilderandJsonObjectBuilderobjects.createDiff(JsonStructure source, JsonStructure target) Generates a JSON Patch (RFC 6902) from the source and targetJsonStructure.abstract JsonGeneratorCreates 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.createMergeDiff(JsonValue source, JsonValue target) Generates a JSON Merge Patch (RFC 7396) from the source and targetJsonValues which when applied to thesource, yields thetarget.createMergePatch(JsonValue patch) Creates JSON Merge Patch (RFC 7396) from specifiedJsonValue.abstract JsonObjectBuilderCreates a JSON object builder.createObjectBuilder(JsonObject object) Creates a JSON object builder, initialized with the specified object.createObjectBuilder(Map<String, ?> map) Creates a JSON object builder, initialized with the data from specifiedmap.abstract JsonParserCreates 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.createPatch(JsonArray array) Creates a JSON Patch (RFC 6902) from the specified operations.Creates a JSON Patch builder (RFC 6902).createPatchBuilder(JsonArray array) Creates a JSON Patch builder (RFC 6902), initialized with the specified operations.createPointer(String jsonPointer) Creates JSON Pointer (RFC 6901) from givenjsonPointerstring.abstract JsonReaderCreates 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.createValue(double value) Creates a JsonNumber.createValue(int value) Creates a JsonNumber.createValue(long value) Creates a JsonNumber.createValue(Number number) Creates a JsonNumber.createValue(String value) Creates a JsonString.createValue(BigDecimal value) Creates a JsonNumber.createValue(BigInteger value) Creates a JsonNumber.abstract JsonWritercreateWriter(OutputStream out) abstract JsonWritercreateWriter(Writer writer) abstract JsonWriterFactorycreateWriterFactory(Map<String, ?> config) Creates a writer factory for creatingJsonWriterobjects.private static booleanisOsgi()Check availability of HK2 service loader.private static <T> TlookupUsingOSGiServiceLoader(Class<? extends T> serviceClass) Lookup the service class by the HK2 service locator.private static JsonProvidernewInstance(String className) Creates a new instance from the specified classstatic JsonProviderprovider()Creates a JSON provider object.
-
Field Details
-
JSONP_PROVIDER_FACTORY
The name of the property that contains the name of the class capable of creating new JsonProvider objects.- See Also:
-
DEFAULT_PROVIDER
A constant representing the name of the defaultJsonProviderimplementation class.- See Also:
-
LOG
A logger -
OSGI_SERVICE_LOADER_CLASS_NAME
OSGI aware service loader by HK2- See Also:
-
-
Constructor Details
-
JsonProvider
protected JsonProvider()Default constructor.
-
-
Method Details
-
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:
-
newInstance
Creates a new instance from the specified class- Parameters:
className- name of the class to instantiate- Returns:
- the JsonProvider instance
- Throws:
JsonException- for issues during creation of an instance of the JsonProvider
-
checkPackageAccess
Make sure that the current thread has an access to the package of the given name.- Parameters:
className- The class name to check.
-
createParser
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
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
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
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
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
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
Creates a JSON reader from a character stream.- Parameters:
reader- a reader from which JSON is to be read- Returns:
- a JSON reader
-
createReader
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
- Parameters:
writer- to which JSON object or array is written- Returns:
- a JSON writer
-
createWriter
-
createWriterFactory
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
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
Creates a JSON object builder.- Returns:
- a JSON object builder
-
createObjectBuilder
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
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
Creates a JSON array builder.- Returns:
- a JSON array builder
-
createArrayBuilder
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
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
Creates a JSON Patch builder (RFC 6902).- Returns:
- a JSON Patch builder
- Since:
- 1.1
-
createPatchBuilder
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
-
createDiff
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
Creates JSON Merge Patch (RFC 7396) from specifiedJsonValue.- Parameters:
patch- the patch- Returns:
- a JSON Merge Patch
- Since:
- 1.1
-
createMergeDiff
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
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
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
Creates a JsonString.- Parameters:
value- a JSON string- Returns:
- the JsonString for the string
- Since:
- 1.1
-
createValue
Creates a JsonNumber.- Parameters:
value- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 1.1
-
createValue
Creates a JsonNumber.- Parameters:
value- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 1.1
-
createValue
Creates a JsonNumber.- Parameters:
value- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 1.1
-
createValue
Creates a JsonNumber.- Parameters:
value- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 1.1
-
createValue
Creates a JsonNumber.- Parameters:
value- a JSON number- Returns:
- the JsonNumber for the number
- Since:
- 1.1
-
createValue
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
-
isOsgi
private static boolean isOsgi()Check availability of HK2 service loader.- Returns:
- true if HK2 service locator is available
-
lookupUsingOSGiServiceLoader
Lookup the service class by the HK2 service locator.- Type Parameters:
T- type of the service- Parameters:
serviceClass- service class- Returns:
- a provider
-