Package com.powsybl.commons.json
Class JsonUtil
- java.lang.Object
-
- com.powsybl.commons.json.JsonUtil
-
public final class JsonUtil extends Object
- Author:
- Mathieu Bague
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
assertGreaterThanReferenceVersion(String contextName, String elementName, String version, String referenceVersion)
static void
assertLessThanOrEqualToReferenceVersion(String contextName, String elementName, String version, String referenceVersion)
static com.fasterxml.jackson.core.JsonFactory
createJsonFactory()
static com.fasterxml.jackson.databind.ObjectMapper
createObjectMapper()
static <T> T
parseJson(Reader reader, Function<com.fasterxml.jackson.core.JsonParser,T> function)
static <T> T
parseJson(String json, Function<com.fasterxml.jackson.core.JsonParser,T> function)
static <T> T
parseJson(Path file, Function<com.fasterxml.jackson.core.JsonParser,T> function)
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 void
skip(com.fasterxml.jackson.core.JsonParser parser)
Skip a part of a JSON documentstatic String
toJson(Consumer<com.fasterxml.jackson.core.JsonGenerator> consumer)
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)
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, 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, T extendable)
Updates the extensions of the provided extendable with possibly partial definition read from JSON.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)
static <T> Set<String>
writeExtensions(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, com.fasterxml.jackson.databind.SerializerProvider serializerProvider)
static <T> Set<String>
writeExtensions(Extendable<T> extendable, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, com.fasterxml.jackson.databind.SerializerProvider serializerProvider, ExtensionProviders<? extends ExtensionJsonSerializer> supplier)
static void
writeJson(Writer writer, Consumer<com.fasterxml.jackson.core.JsonGenerator> consumer)
static void
writeJson(Path file, Consumer<com.fasterxml.jackson.core.JsonGenerator> consumer)
static void
writeOptionalBooleanField(com.fasterxml.jackson.core.JsonGenerator jsonGenerator, String fieldName, boolean value, boolean defaultValue)
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 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 Detail
-
createObjectMapper
public static com.fasterxml.jackson.databind.ObjectMapper createObjectMapper()
-
createJsonFactory
public static com.fasterxml.jackson.core.JsonFactory createJsonFactory()
-
writeJson
public static void writeJson(Writer writer, Consumer<com.fasterxml.jackson.core.JsonGenerator> consumer)
-
writeJson
public static void writeJson(Path file, Consumer<com.fasterxml.jackson.core.JsonGenerator> consumer)
-
parseJson
public static <T> T parseJson(Path file, Function<com.fasterxml.jackson.core.JsonParser,T> function)
-
parseJson
public static <T> T parseJson(String json, Function<com.fasterxml.jackson.core.JsonParser,T> function)
-
parseJson
public static <T> T parseJson(Reader reader, Function<com.fasterxml.jackson.core.JsonParser,T> function)
-
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, boolean headerWanted, com.fasterxml.jackson.databind.SerializerProvider serializerProvider, ExtensionProviders<? extends ExtensionJsonSerializer> 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, ExtensionProviders<? extends ExtensionJsonSerializer> 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
public static void skip(com.fasterxml.jackson.core.JsonParser parser) throws IOException
Skip a part of a JSON document- Throws:
IOException
-
assertLessThanOrEqualToReferenceVersion
public static void assertLessThanOrEqualToReferenceVersion(String contextName, String elementName, String version, String referenceVersion)
-
-