27package dev.rafex.ether.json;
29import java.io.IOException;
30import java.io.InputStream;
31import java.io.OutputStream;
32import java.nio.file.Files;
33import java.nio.file.Path;
36import com.fasterxml.jackson.core.type.TypeReference;
37import com.fasterxml.jackson.databind.JavaType;
38import com.fasterxml.jackson.databind.JsonNode;
40public final class JsonUtils {
47 public static String
toJson(
final Object value) {
48 return DEFAULT_CODEC.toJson(value);
52 return DEFAULT_CODEC.toPrettyJson(value);
56 return DEFAULT_CODEC.toJsonBytes(value);
59 public static void writeJson(
final OutputStream output,
final Object value) {
60 DEFAULT_CODEC.writeValue(output, value);
63 public static <T> T
fromJson(
final String
json,
final Class<T> clazz) {
64 return DEFAULT_CODEC.readValue(
json, clazz);
67 public static <T> T
fromJson(
final String
json,
final TypeReference<T> typeRef) {
68 return DEFAULT_CODEC.readValue(
json, typeRef);
71 public static <T> T
fromJson(
final String
json,
final JavaType type) {
72 return DEFAULT_CODEC.readValue(
json, type);
75 public static <T> T
fromJson(
final InputStream input,
final Class<T> clazz) {
76 return DEFAULT_CODEC.readValue(input, clazz);
79 public static <T> T
fromJson(
final InputStream input,
final TypeReference<T> typeRef) {
80 return DEFAULT_CODEC.readValue(input, typeRef);
83 public static <T> T
fromJson(
final InputStream input,
final JavaType type) {
84 return DEFAULT_CODEC.readValue(input, type);
87 public static <T> T
fromJson(
final byte[] input,
final Class<T> clazz) {
88 return DEFAULT_CODEC.readValue(input, clazz);
91 public static <T> T
fromJson(
final byte[] input,
final TypeReference<T> typeRef) {
92 return DEFAULT_CODEC.readValue(input, typeRef);
95 public static <T> T
fromJson(
final byte[] input,
final JavaType type) {
96 return DEFAULT_CODEC.readValue(input, type);
100 final var listType = DEFAULT_CODEC.mapper().getTypeFactory().constructCollectionType(List.class, elementClass);
101 return DEFAULT_CODEC.readValue(
json, listType);
105 return DEFAULT_CODEC.readTree(
json);
108 public static JsonNode
parseTree(
final InputStream input) {
109 return DEFAULT_CODEC.readTree(input);
113 return DEFAULT_CODEC.readTree(input);
117 try (InputStream input = Files.newInputStream(path)) {
118 return DEFAULT_CODEC.readTree(input);
119 }
catch (
final IOException e) {
125 return DEFAULT_CODEC.valueToTree(value);
128 public static JsonNode
at(
final JsonNode node,
final String pointer) {
129 return DEFAULT_CODEC.at(node, pointer);
132 public static <T> T
treeToValue(
final JsonNode node,
final Class<T> clazz) {
133 return DEFAULT_CODEC.treeToValue(node, clazz);
136 public static <T> T
treeToValue(
final JsonNode node,
final TypeReference<T> typeRef) {
137 return DEFAULT_CODEC.treeToValue(node, typeRef);
141 return DEFAULT_CODEC;
145 return builder.
build();
static JacksonJsonCodec defaultCodec()
static< T > List< T > fromJsonToList(final String json, final Class< T > elementClass)
static< T > T fromJson(final InputStream input, final TypeReference< T > typeRef)
static JsonNode parseTree(final String json)
static< T > T fromJson(final String json, final TypeReference< T > typeRef)
static JsonNode readTreeFromFile(final Path path)
static String toJson(final Object value)
static< T > T treeToValue(final JsonNode node, final Class< T > clazz)
static JsonNode parseTree(final InputStream input)
static JsonCodec codec(final JsonCodecBuilder builder)
static< T > T fromJson(final byte[] input, final JavaType type)
static JsonNode parseTree(final byte[] input)
static< T > T fromJson(final InputStream input, final JavaType type)
static byte[] toJsonBytes(final Object value)
static void writeJson(final OutputStream output, final Object value)
static JsonNode valueToTree(final Object value)
static< T > T fromJson(final InputStream input, final Class< T > clazz)
static< T > T fromJson(final String json, final JavaType type)
static< T > T fromJson(final String json, final Class< T > clazz)
static< T > T fromJson(final byte[] input, final Class< T > clazz)
static String toPrettyJson(final Object value)
static JsonNode at(final JsonNode node, final String pointer)
static< T > T fromJson(final byte[] input, final TypeReference< T > typeRef)
static< T > T treeToValue(final JsonNode node, final TypeReference< T > typeRef)