Class JacksonUtils

java.lang.Object
com.vaadin.flow.internal.JacksonUtils

public final class JacksonUtils extends Object
Helpers for using jackson.

For internal use only. May be renamed or removed in a future release.

Since:
24.7
Author:
Vaadin Ltd
  • Method Summary

    Modifier and Type
    Method
    Description
    static Collector<com.fasterxml.jackson.databind.JsonNode,com.fasterxml.jackson.databind.node.ArrayNode,com.fasterxml.jackson.databind.node.ArrayNode>
    Creates a collector that collects values into a JSON array.
    static com.fasterxml.jackson.databind.node.ObjectNode
    Converts the given bean to JSON.
    static boolean
    booleanEqual(com.fasterxml.jackson.databind.JsonNode a, com.fasterxml.jackson.databind.JsonNode b)
    Compare boolean value of two JsonNode values.
    static com.fasterxml.jackson.databind.node.ArrayNode
    createArray(com.fasterxml.jackson.databind.JsonNode... values)
    Creates a new JSON array with the given values.
    static com.fasterxml.jackson.databind.node.ArrayNode
    Create a new ArrayNode.
    static elemental.json.JsonArray
    createElementalArray(com.fasterxml.jackson.databind.node.ArrayNode jsonNodes)
    Convert the contents of an ArrayNode into a JsonArray.
    static com.fasterxml.jackson.databind.JsonNode
    Create a JsonNode from value.
    static <T> com.fasterxml.jackson.databind.node.ObjectNode
    createObject(Map<String,T> map, Function<T,com.fasterxml.jackson.databind.JsonNode> itemToJson)
    Converts the given map into a JSON object by converting each map value to a JSON value.
    static com.fasterxml.jackson.databind.node.ObjectNode
    Create a new ObjectNode.
    static List<String>
    getKeys(com.fasterxml.jackson.databind.JsonNode node)
     
    static com.fasterxml.jackson.databind.ObjectMapper
     
    static boolean
    jsonEquals(com.fasterxml.jackson.databind.JsonNode a, com.fasterxml.jackson.databind.JsonNode b)
    Compares two json values for deep equality.
    static com.fasterxml.jackson.databind.node.ArrayNode
    listToJson(List<?> list)
    Converts the given list to JSON.
    static com.fasterxml.jackson.databind.node.ArrayNode
    mapElemental(elemental.json.JsonArray jsonArray)
    Map JsonArray to ArrayNode.
    static com.fasterxml.jackson.databind.node.ObjectNode
    mapElemental(elemental.json.JsonObject jsonObject)
    Map JsonObject to ObjectNode.
    static com.fasterxml.jackson.databind.node.BaseJsonNode
    mapElemental(elemental.json.JsonValue jsonValue)
    Map JsonValue to ObjectNode.
    static com.fasterxml.jackson.databind.node.ObjectNode
    Converts the given map to JSON.
    static com.fasterxml.jackson.databind.node.ValueNode
    Create a nullNode for null value.
    static boolean
    numbersEqual(com.fasterxml.jackson.databind.JsonNode a, com.fasterxml.jackson.databind.JsonNode b)
    Compare number value of two JsonNode values.
    numberStream(com.fasterxml.jackson.databind.node.ArrayNode array)
    Creates a double stream from a JSON array of numbers.
    static Stream<com.fasterxml.jackson.databind.JsonNode>
    objectStream(com.fasterxml.jackson.databind.node.ArrayNode array)
    Creates a stream from a JSON array of objects.
    static <T> T
    readToObject(com.fasterxml.jackson.databind.JsonNode jsonObject, Class<T> tClass)
    Converts JsonObject into Java object of given type.
    static com.fasterxml.jackson.databind.node.ObjectNode
    Read Json string to JsonNode.
    static <T> T
    readValue(com.fasterxml.jackson.databind.JsonNode jsonValue, com.fasterxml.jackson.core.type.TypeReference<T> typeReference)
    Converts ObjectNode into Java object of given type.
    static <T> T
    readValue(com.fasterxml.jackson.databind.JsonNode jsonValue, Class<T> tClass)
    Converts ObjectNode into Java object of given type.
    static <T extends com.fasterxml.jackson.databind.JsonNode>
    Stream<T>
    stream(com.fasterxml.jackson.databind.node.ArrayNode array)
    Creates a stream from a JSON array.
    static boolean
    stringEqual(com.fasterxml.jackson.databind.JsonNode a, com.fasterxml.jackson.databind.JsonNode b)
    Compare String value of two JsonNode values.
    static String
    toFileJson(com.fasterxml.jackson.databind.JsonNode node)
    Converts the given node into JSON suitable for writing into a file such as package.json.
    static com.fasterxml.jackson.databind.node.BaseJsonNode
    Converts Java object into ObjectNode.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • getMapper

      public static com.fasterxml.jackson.databind.ObjectMapper getMapper()
    • createObjectNode

      public static com.fasterxml.jackson.databind.node.ObjectNode createObjectNode()
      Create a new ObjectNode.
      Returns:
      ObjectNode
    • createArrayNode

      public static com.fasterxml.jackson.databind.node.ArrayNode createArrayNode()
      Create a new ArrayNode.
      Returns:
      ArrayNode
    • nullNode

      public static com.fasterxml.jackson.databind.node.ValueNode nullNode()
      Create a nullNode for null value.
      Returns:
      NullNode
    • mapElemental

      public static com.fasterxml.jackson.databind.node.ArrayNode mapElemental(elemental.json.JsonArray jsonArray)
      Map JsonArray to ArrayNode.
      Parameters:
      jsonArray - JsonArray to change
      Returns:
      ArrayNode of elemental json array object or null for null jsonArray
    • mapElemental

      public static com.fasterxml.jackson.databind.node.ObjectNode mapElemental(elemental.json.JsonObject jsonObject)
      Map JsonObject to ObjectNode.
      Parameters:
      jsonObject - JsonObject to change
      Returns:
      ObjectNode of elemental json object object or null for null jsonObject
    • mapElemental

      public static com.fasterxml.jackson.databind.node.BaseJsonNode mapElemental(elemental.json.JsonValue jsonValue)
      Map JsonValue to ObjectNode.
      Parameters:
      jsonValue - JsonValue to change
      Returns:
      ObjectNode of elemental json value
    • createElementalArray

      public static elemental.json.JsonArray createElementalArray(com.fasterxml.jackson.databind.node.ArrayNode jsonNodes)
      Convert the contents of an ArrayNode into a JsonArray. This is mostly needed for arrays that may contain arrays and values.
      Parameters:
      jsonNodes - ArrayNode to convert
      Returns:
      JsonArray of ArrayNode content
    • readTree

      public static com.fasterxml.jackson.databind.node.ObjectNode readTree(String json)
      Read Json string to JsonNode.
      Returns:
      JsonNode representation of given json string
    • createNode

      public static com.fasterxml.jackson.databind.JsonNode createNode(Object value)
      Create a JsonNode from value.
      Returns:
      JsonNode for given value content
    • jsonEquals

      public static boolean jsonEquals(com.fasterxml.jackson.databind.JsonNode a, com.fasterxml.jackson.databind.JsonNode b)
      Compares two json values for deep equality.

      This is a helper for overcoming the fact that ObjectNode doesn't override Object.equals(Object) and { ObjectNode#jsEquals(ObjectNode)} is defined to use JavaScript semantics where arrays and objects are equals only based on identity.

      Parameters:
      a - the first json value to check, may not be null
      b - the second json value to check, may not be null
      Returns:
      true if both json values are the same; false otherwise
    • stringEqual

      public static boolean stringEqual(com.fasterxml.jackson.databind.JsonNode a, com.fasterxml.jackson.databind.JsonNode b)
      Compare String value of two JsonNode values.
      Parameters:
      a - Value one
      b - Value two
      Returns:
      true if text content equals
    • booleanEqual

      public static boolean booleanEqual(com.fasterxml.jackson.databind.JsonNode a, com.fasterxml.jackson.databind.JsonNode b)
      Compare boolean value of two JsonNode values.
      Parameters:
      a - Value one
      b - Value two
      Returns:
      true if text boolean equals
    • numbersEqual

      public static boolean numbersEqual(com.fasterxml.jackson.databind.JsonNode a, com.fasterxml.jackson.databind.JsonNode b)
      Compare number value of two JsonNode values.
      Parameters:
      a - Value one
      b - Value two
      Returns:
      true if number content equals
    • getKeys

      public static List<String> getKeys(com.fasterxml.jackson.databind.JsonNode node)
    • stream

      public static <T extends com.fasterxml.jackson.databind.JsonNode> Stream<T> stream(com.fasterxml.jackson.databind.node.ArrayNode array)
      Creates a stream from a JSON array.
      Type Parameters:
      T - the stream type
      Parameters:
      array - the JSON array to create a stream from
      Returns:
      a stream of JSON values
    • objectStream

      public static Stream<com.fasterxml.jackson.databind.JsonNode> objectStream(com.fasterxml.jackson.databind.node.ArrayNode array)
      Creates a stream from a JSON array of objects. This method does not verify that all items in the array are actually JSON objects instead of some other JSON type.
      Parameters:
      array - the JSON array to create a stream from
      Returns:
      a stream of JSON objects
    • numberStream

      public static DoubleStream numberStream(com.fasterxml.jackson.databind.node.ArrayNode array)
      Creates a double stream from a JSON array of numbers. This method does not verify that all items in the array are actually JSON numbers instead of some other JSON type.
      Parameters:
      array - the JSON array to create a stream from
      Returns:
      a double stream of the values in the array
    • asArray

      public static Collector<com.fasterxml.jackson.databind.JsonNode,com.fasterxml.jackson.databind.node.ArrayNode,com.fasterxml.jackson.databind.node.ArrayNode> asArray()
      Creates a collector that collects values into a JSON array.
      Returns:
      the collector
    • createArray

      public static com.fasterxml.jackson.databind.node.ArrayNode createArray(com.fasterxml.jackson.databind.JsonNode... values)
      Creates a new JSON array with the given values.
      Parameters:
      values - the values that should be in the created array
      Returns:
      the created array
    • createObject

      public static <T> com.fasterxml.jackson.databind.node.ObjectNode createObject(Map<String,T> map, Function<T,com.fasterxml.jackson.databind.JsonNode> itemToJson)
      Converts the given map into a JSON object by converting each map value to a JSON value.
      Type Parameters:
      T - the type of the map values
      Parameters:
      map - the map to convert into a JSON object
      itemToJson - callback for converting map values to JSON
      Returns:
      the created object
    • beanToJson

      public static com.fasterxml.jackson.databind.node.ObjectNode beanToJson(Object bean)
      Converts the given bean to JSON.
      Parameters:
      bean - the bean to convert, not null
      Returns:
      a JSON representation of the bean
    • listToJson

      public static com.fasterxml.jackson.databind.node.ArrayNode listToJson(List<?> list)
      Converts the given list to JSON.
      Parameters:
      list - the list to convert, not null
      Returns:
      a JSON representation of the bean
    • mapToJson

      public static com.fasterxml.jackson.databind.node.ObjectNode mapToJson(Map<String,?> map)
      Converts the given map to JSON.
      Parameters:
      map - the map to convert, not null
      Returns:
      a JSON representation of the bean
    • readToObject

      public static <T> T readToObject(com.fasterxml.jackson.databind.JsonNode jsonObject, Class<T> tClass)
      Converts JsonObject into Java object of given type.
      Type Parameters:
      T - type of result instance
      Parameters:
      jsonObject - JSON object to convert, not null
      tClass - class of converted object instance
      Returns:
      converted object instance
    • readValue

      public static <T> T readValue(com.fasterxml.jackson.databind.JsonNode jsonValue, Class<T> tClass)
      Converts ObjectNode into Java object of given type.
      Type Parameters:
      T - type of result instance
      Parameters:
      jsonValue - JSON value to convert, not null
      tClass - class of converted object instance
      Returns:
      converted object instance
    • readValue

      public static <T> T readValue(com.fasterxml.jackson.databind.JsonNode jsonValue, com.fasterxml.jackson.core.type.TypeReference<T> typeReference)
      Converts ObjectNode into Java object of given type.
      Type Parameters:
      T - type of result instance
      Parameters:
      jsonValue - JSON value to convert, not null
      typeReference - type reference of converted object instance
      Returns:
      converted object instance
    • writeValue

      public static com.fasterxml.jackson.databind.node.BaseJsonNode writeValue(Object object)
      Converts Java object into ObjectNode.
      Parameters:
      object - Java object to convert
      Returns:
      converted JSON value
    • toFileJson

      public static String toFileJson(com.fasterxml.jackson.databind.JsonNode node) throws com.fasterxml.jackson.core.JsonProcessingException
      Converts the given node into JSON suitable for writing into a file such as package.json.
      Parameters:
      node - the node to convert
      Returns:
      the JSON string
      Throws:
      com.fasterxml.jackson.core.JsonProcessingException - if the node cannot be converted