Package com.powsybl.commons.json
Class JsonUtil
java.lang.Object
com.powsybl.commons.json.JsonUtil
- Author:
- Mathieu Bague <mathieu.bague at rte-france.com>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Called by variants ofparseObject(com.fasterxml.jackson.core.JsonParser, com.powsybl.commons.json.JsonUtil.FieldHandler)
on each encountered field.static interface
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
assertGreaterOrEqualThanReferenceVersion
(String contextName, String elementName, String version, String referenceVersion) static void
assertGreaterThanReferenceVersion
(String contextName, String elementName, String version, String referenceVersion) static void
assertLessThanOrEqualToReferenceVersion
(String contextName, String elementName, String version, String referenceVersion) static void
assertLessThanReferenceVersion
(String contextName, String elementName, String version, String referenceVersion) static com.fasterxml.jackson.core.JsonFactory
static com.fasterxml.jackson.databind.ObjectMapper
static String
getSourceVersion
(com.fasterxml.jackson.databind.DatabindContext context, String sourceVersionAttributeKey) Reads the version from the context (typically aDeserializationContext
) where it has been previously stored.parseDoubleArray
(com.fasterxml.jackson.core.JsonParser parser) parseFloatArray
(com.fasterxml.jackson.core.JsonParser parser) parseIntegerArray
(com.fasterxml.jackson.core.JsonParser parser) static <T> T
static <T> T
static <T> T
parseLongArray
(com.fasterxml.jackson.core.JsonParser parser) static void
parseObject
(com.fasterxml.jackson.core.JsonParser parser, boolean polymorphic, JsonUtil.FieldHandler fieldHandler) Parses an object from the current parser position, using the provided field handler.static void
parseObject
(com.fasterxml.jackson.core.JsonParser parser, JsonUtil.FieldHandler fieldHandler) Parses an object from the current parser position, using the provided field handler.static <T> void
parseObjectArray
(com.fasterxml.jackson.core.JsonParser parser, Consumer<T> objectAdder, Function<com.fasterxml.jackson.core.JsonParser, T> objectParser) static void
parsePolymorphicObject
(com.fasterxml.jackson.core.JsonParser parser, JsonUtil.FieldHandler fieldHandler) Parses an object from the current parser position, using the provided field handler.parseStringArray
(com.fasterxml.jackson.core.JsonParser parser) static <T extends Extendable>
Extension<T>readExtension
(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, ExtensionProviders<? extends ExtensionJsonSerializer> supplier, Set<String> extensionsNotFound) static <T extends Extendable>
List<Extension<T>>readExtensions
(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context) static <T extends Extendable>
List<Extension<T>>readExtensions
(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, ExtensionProviders<? extends ExtensionJsonSerializer> supplier) static <T extends Extendable>
List<Extension<T>>readExtensions
(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, ExtensionProviders<? extends ExtensionJsonSerializer> supplier, Set<String> extensionsNotFound) static <T> T
static <T> T
readJsonAndUpdate
(InputStream is, T object, com.fasterxml.jackson.databind.ObjectMapper objectMapper) static <T> T
readJsonAndUpdate
(Path jsonFile, T object, com.fasterxml.jackson.databind.ObjectMapper objectMapper) static <T> List<T>
readList
(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser parser, Class<?> type) static <T> Set<T>
readSet
(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser parser, Class<?> type) static <T> T
readValue
(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser parser, Class<?> type) Reads a value using the given deserialization context (instead of only using the parser reading method that recreates a context every time).static void
setSourceVersion
(com.fasterxml.jackson.databind.DatabindContext context, String version, String sourceVersionAttributeKey) Saves the provided version into the context (typically aDeserializationContext
), for later retrieval.static void
skip
(com.fasterxml.jackson.core.JsonParser parser) Skip a part of a JSON documentstatic String
static <T extends Extendable>
List<Extension<T>>updateExtensions
(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, ExtensionProviders<? extends ExtensionJsonSerializer> supplier, Set<String> extensionsNotFound, T extendable) static <T extends Extendable>
List<Extension<T>>updateExtensions
(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, ExtensionProviders<? extends ExtensionJsonSerializer> supplier, T extendable) Updates the extensions of the provided extendable with possibly partial definition read from JSON.static <T extends Extendable>
List<Extension<T>>updateExtensions
(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, JsonUtil.SerializerSupplier supplier, Set<String> extensionsNotFound, T extendable) Updates the extensions of the provided extendable with possibly partial definition read from JSON.static <T extends Extendable>
List<Extension<T>>updateExtensions
(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, JsonUtil.SerializerSupplier supplier, T extendable) static <T extends Extendable>
List<Extension<T>>updateExtensions
(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, T extendable) Updates the extensions of the provided extendable with possibly partial definition read from JSON.writeExtensions
(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, boolean headerWanted, com.fasterxml.jackson.databind.SerializerProvider serializerProvider, ExtensionProviders<? extends ExtensionJsonSerializer> supplier) writeExtensions
(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, boolean headerWanted, com.fasterxml.jackson.databind.SerializerProvider serializerProvider, JsonUtil.SerializerSupplier supplier) writeExtensions
(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, com.fasterxml.jackson.databind.SerializerProvider serializerProvider) writeExtensions
(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, com.fasterxml.jackson.databind.SerializerProvider serializerProvider, ExtensionProviders<? extends ExtensionJsonSerializer> supplier) writeExtensions
(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, com.fasterxml.jackson.databind.SerializerProvider serializerProvider, JsonUtil.SerializerSupplier supplier) static void
static void
static void
static void
writeOptionalBoolean
(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String field, Optional<Boolean> optional) static void
writeOptionalBooleanField
(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, boolean value, boolean defaultValue) static void
writeOptionalDouble
(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String field, OptionalDouble optional) static void
writeOptionalDoubleField
(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, double value) static void
writeOptionalDoubleField
(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, double value, double defaultValue) static <T extends Enum>
voidwriteOptionalEnum
(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String field, Optional<T> optional) static void
writeOptionalEnumField
(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, Enum<?> value) static void
writeOptionalFloatField
(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, float value) static void
writeOptionalIntegerField
(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, int value) static void
writeOptionalStringField
(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, String value)
-
Method Details
-
createObjectMapper
public static com.fasterxml.jackson.databind.ObjectMapper createObjectMapper() -
writeJson
-
readJson
-
readJsonAndUpdate
public static <T> T readJsonAndUpdate(InputStream is, T object, com.fasterxml.jackson.databind.ObjectMapper objectMapper) -
readJsonAndUpdate
public static <T> T readJsonAndUpdate(Path jsonFile, T object, com.fasterxml.jackson.databind.ObjectMapper objectMapper) -
createJsonFactory
public static com.fasterxml.jackson.core.JsonFactory createJsonFactory() -
writeJson
-
toJson
-
writeJson
-
parseJson
-
parseJson
-
parseJson
-
writeOptionalStringField
public static void writeOptionalStringField(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, String value) throws IOException - Throws:
IOException
-
writeOptionalEnumField
public static void writeOptionalEnumField(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, Enum<?> value) throws IOException - Throws:
IOException
-
writeOptionalBooleanField
public static void writeOptionalBooleanField(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, boolean value, boolean defaultValue) throws IOException - Throws:
IOException
-
writeOptionalFloatField
public static void writeOptionalFloatField(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, float value) throws IOException - Throws:
IOException
-
writeOptionalDoubleField
public static void writeOptionalDoubleField(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, double value) throws IOException - Throws:
IOException
-
writeOptionalDoubleField
public static void writeOptionalDoubleField(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, double value, double defaultValue) throws IOException - Throws:
IOException
-
writeOptionalIntegerField
public static void writeOptionalIntegerField(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, int value) throws IOException - Throws:
IOException
-
writeExtensions
public static <T> Set<String> writeExtensions(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, com.fasterxml.jackson.databind.SerializerProvider serializerProvider) throws IOException - Throws:
IOException
-
writeExtensions
public static <T> Set<String> writeExtensions(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, com.fasterxml.jackson.databind.SerializerProvider serializerProvider, ExtensionProviders<? extends ExtensionJsonSerializer> supplier) throws IOException - Throws:
IOException
-
writeExtensions
public static <T> Set<String> writeExtensions(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, com.fasterxml.jackson.databind.SerializerProvider serializerProvider, JsonUtil.SerializerSupplier supplier) throws IOException - Throws:
IOException
-
writeExtensions
public static <T> Set<String> writeExtensions(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, boolean headerWanted, com.fasterxml.jackson.databind.SerializerProvider serializerProvider, ExtensionProviders<? extends ExtensionJsonSerializer> supplier) throws IOException - Throws:
IOException
-
writeExtensions
public static <T> Set<String> writeExtensions(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, boolean headerWanted, com.fasterxml.jackson.databind.SerializerProvider serializerProvider, JsonUtil.SerializerSupplier supplier) throws IOException - Throws:
IOException
-
updateExtensions
public static <T extends Extendable> List<Extension<T>> updateExtensions(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, T extendable) throws IOException Updates the extensions of the provided extendable with possibly partial definition read from JSON.Note that in order for this to work correctly, extension providers need to implement
ExtensionJsonSerializer.deserializeAndUpdate(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, E)
.- Throws:
IOException
-
updateExtensions
public static <T extends Extendable> List<Extension<T>> updateExtensions(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, ExtensionProviders<? extends ExtensionJsonSerializer> supplier, T extendable) throws IOException Updates the extensions of the provided extendable with possibly partial definition read from JSON.Note that in order for this to work correctly, extension providers need to implement
ExtensionJsonSerializer.deserializeAndUpdate(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, E)
.- Throws:
IOException
-
updateExtensions
public static <T extends Extendable> List<Extension<T>> updateExtensions(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, JsonUtil.SerializerSupplier supplier, T extendable) throws IOException - Throws:
IOException
-
updateExtensions
public static <T extends Extendable> List<Extension<T>> updateExtensions(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, ExtensionProviders<? extends ExtensionJsonSerializer> supplier, Set<String> extensionsNotFound, T extendable) throws IOException - Throws:
IOException
-
updateExtensions
public static <T extends Extendable> List<Extension<T>> updateExtensions(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, JsonUtil.SerializerSupplier supplier, Set<String> extensionsNotFound, T extendable) throws IOException Updates the extensions of the provided extendable with possibly partial definition read from JSON.Note that in order for this to work correctly, extension providers need to implement
ExtensionJsonSerializer.deserializeAndUpdate(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, E)
.- Throws:
IOException
-
readExtensions
public static <T extends Extendable> List<Extension<T>> readExtensions(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context) throws IOException - Throws:
IOException
-
readExtensions
public static <T extends Extendable> List<Extension<T>> readExtensions(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, ExtensionProviders<? extends ExtensionJsonSerializer> supplier) throws IOException - Throws:
IOException
-
readExtensions
public static <T extends Extendable> List<Extension<T>> readExtensions(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, ExtensionProviders<? extends ExtensionJsonSerializer> supplier, Set<String> extensionsNotFound) throws IOException - Throws:
IOException
-
readExtension
public static <T extends Extendable> Extension<T> readExtension(com.fasterxml.jackson.core.JsonParser parser, com.fasterxml.jackson.databind.DeserializationContext context, ExtensionProviders<? extends ExtensionJsonSerializer> supplier, Set<String> extensionsNotFound) throws IOException - Throws:
IOException
-
skip
Skip a part of a JSON document- Throws:
IOException
-
assertLessThanOrEqualToReferenceVersion
-
assertGreaterThanReferenceVersion
-
assertGreaterOrEqualThanReferenceVersion
-
assertLessThanReferenceVersion
-
parseObject
public static void parseObject(com.fasterxml.jackson.core.JsonParser parser, JsonUtil.FieldHandler fieldHandler) Parses an object from the current parser position, using the provided field handler. The parsing will expect the starting position to be START_OBJECT. -
parsePolymorphicObject
public static void parsePolymorphicObject(com.fasterxml.jackson.core.JsonParser parser, JsonUtil.FieldHandler fieldHandler) Parses an object from the current parser position, using the provided field handler. The parsing will accept the starting position to be either a START_OBJECT or a FIELD_NAME, see contract forJsonDeserializer.deserialize(JsonParser, DeserializationContext)
. -
parseObject
public static void parseObject(com.fasterxml.jackson.core.JsonParser parser, boolean polymorphic, JsonUtil.FieldHandler fieldHandler) Parses an object from the current parser position, using the provided field handler. Ifpolymorphic
istrue
, the parsing will accept the starting position to be either a START_OBJECT or a FIELD_NAME, see contract forJsonDeserializer.deserialize(JsonParser, DeserializationContext)
. -
parseObjectArray
-
parseIntegerArray
-
parseLongArray
-
parseFloatArray
-
parseDoubleArray
-
parseStringArray
-
setSourceVersion
public static void setSourceVersion(com.fasterxml.jackson.databind.DatabindContext context, String version, String sourceVersionAttributeKey) Saves the provided version into the context (typically aDeserializationContext
), for later retrieval. -
getSourceVersion
public static String getSourceVersion(com.fasterxml.jackson.databind.DatabindContext context, String sourceVersionAttributeKey) Reads the version from the context (typically aDeserializationContext
) where it has been previously stored. -
readValue
public static <T> T readValue(com.fasterxml.jackson.databind.DeserializationContext context, com.fasterxml.jackson.core.JsonParser parser, Class<?> type) Reads a value using the given deserialization context (instead of only using the parser reading method that recreates a context every time). Also handles readingnull
values. -
readList
-
readSet
-
writeOptionalEnum
public static <T extends Enum> void writeOptionalEnum(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String field, Optional<T> optional) throws IOException - Throws:
IOException
-
writeOptionalDouble
public static void writeOptionalDouble(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String field, OptionalDouble optional) throws IOException - Throws:
IOException
-
writeOptionalBoolean
public static void writeOptionalBoolean(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String field, Optional<Boolean> optional) throws IOException - Throws:
IOException
-