Class JSONSerializer

java.lang.Object
nonapi.io.github.classgraph.json.JSONSerializer

public final class JSONSerializer extends Object
Fast, lightweight Java object to JSON serializer, and JSON to Java object deserializer. Handles cycles in the object graph by inserting reference ids.
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    serializeFromField(Object containingObject, String fieldName, int indentWidth, boolean onlySerializePublicFields)
    Recursively serialize the named field of an object, skipping transient and final fields.
    static String
    serializeFromField(Object containingObject, String fieldName, int indentWidth, boolean onlySerializePublicFields, nonapi.io.github.classgraph.json.ClassFieldCache classFieldCache)
    Recursively serialize the named field of an object, skipping transient and final fields.
    static String
    serializeFromField(Object containingObject, String fieldName, int indentWidth, boolean onlySerializePublicFields, ReflectionUtils reflectionUtils)
    Recursively serialize the named field of an object, skipping transient and final fields.
    static String
    Recursively serialize an Object (or array, list, map or set of objects) to JSON, skipping transient and final fields.
    static String
    serializeObject(Object obj, int indentWidth, boolean onlySerializePublicFields)
    Recursively serialize an Object (or array, list, map or set of objects) to JSON, skipping transient and final fields.
    static String
    serializeObject(Object obj, int indentWidth, boolean onlySerializePublicFields, nonapi.io.github.classgraph.json.ClassFieldCache classFieldCache)
    Recursively serialize an Object (or array, list, map or set of objects) to JSON, skipping transient and final fields.
    static String
    serializeObject(Object obj, int indentWidth, boolean onlySerializePublicFields, ReflectionUtils reflectionUtils)
    Recursively serialize an Object (or array, list, map or set of objects) to JSON, skipping transient and final fields.

    Methods inherited from class Object

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

    • serializeObject

      public static String serializeObject(Object obj, int indentWidth, boolean onlySerializePublicFields, nonapi.io.github.classgraph.json.ClassFieldCache classFieldCache)
      Recursively serialize an Object (or array, list, map or set of objects) to JSON, skipping transient and final fields.
      Parameters:
      obj - The root object of the object graph to serialize.
      indentWidth - If indentWidth == 0, no prettyprinting indentation is performed, otherwise this specifies the number of spaces to indent each level of JSON.
      onlySerializePublicFields - If true, only serialize public fields.
      classFieldCache - The class field cache. Reusing this cache will increase the speed if many JSON documents of the same type need to be produced.
      Returns:
      The object graph in JSON form.
      Throws:
      IllegalArgumentException - If anything goes wrong during serialization.
    • serializeObject

      public static String serializeObject(Object obj, int indentWidth, boolean onlySerializePublicFields, ReflectionUtils reflectionUtils)
      Recursively serialize an Object (or array, list, map or set of objects) to JSON, skipping transient and final fields.
      Parameters:
      obj - The root object of the object graph to serialize.
      indentWidth - If indentWidth == 0, no prettyprinting indentation is performed, otherwise this specifies the number of spaces to indent each level of JSON.
      onlySerializePublicFields - If true, only serialize public fields.
      Returns:
      The object graph in JSON form.
      Throws:
      IllegalArgumentException - If anything goes wrong during serialization.
    • serializeObject

      public static String serializeObject(Object obj, int indentWidth, boolean onlySerializePublicFields)
      Recursively serialize an Object (or array, list, map or set of objects) to JSON, skipping transient and final fields.
      Parameters:
      obj - The root object of the object graph to serialize.
      indentWidth - If indentWidth == 0, no prettyprinting indentation is performed, otherwise this specifies the number of spaces to indent each level of JSON.
      onlySerializePublicFields - If true, only serialize public fields.
      Returns:
      The object graph in JSON form.
      Throws:
      IllegalArgumentException - If anything goes wrong during serialization.
    • serializeObject

      public static String serializeObject(Object obj)
      Recursively serialize an Object (or array, list, map or set of objects) to JSON, skipping transient and final fields.
      Parameters:
      obj - The root object of the object graph to serialize.
      Returns:
      The object graph in JSON form.
      Throws:
      IllegalArgumentException - If anything goes wrong during serialization.
    • serializeFromField

      public static String serializeFromField(Object containingObject, String fieldName, int indentWidth, boolean onlySerializePublicFields, nonapi.io.github.classgraph.json.ClassFieldCache classFieldCache)
      Recursively serialize the named field of an object, skipping transient and final fields.
      Parameters:
      containingObject - The object containing the field value to serialize.
      fieldName - The name of the field to serialize.
      indentWidth - If indentWidth == 0, no prettyprinting indentation is performed, otherwise this specifies the number of spaces to indent each level of JSON.
      onlySerializePublicFields - If true, only serialize public fields.
      classFieldCache - The class field cache. Reusing this cache will increase the speed if many JSON documents of the same type need to be produced.
      Returns:
      The object graph in JSON form.
      Throws:
      IllegalArgumentException - If anything goes wrong during serialization.
    • serializeFromField

      public static String serializeFromField(Object containingObject, String fieldName, int indentWidth, boolean onlySerializePublicFields, ReflectionUtils reflectionUtils)
      Recursively serialize the named field of an object, skipping transient and final fields.
      Parameters:
      containingObject - The object containing the field value to serialize.
      fieldName - The name of the field to serialize.
      indentWidth - If indentWidth == 0, no prettyprinting indentation is performed, otherwise this specifies the number of spaces to indent each level of JSON.
      onlySerializePublicFields - If true, only serialize public fields.
      reflectionUtils - The reflection driver.
      Returns:
      The object graph in JSON form.
      Throws:
      IllegalArgumentException - If anything goes wrong during serialization.
    • serializeFromField

      public static String serializeFromField(Object containingObject, String fieldName, int indentWidth, boolean onlySerializePublicFields)
      Recursively serialize the named field of an object, skipping transient and final fields.
      Parameters:
      containingObject - The object containing the field value to serialize.
      fieldName - The name of the field to serialize.
      indentWidth - If indentWidth == 0, no prettyprinting indentation is performed, otherwise this specifies the number of spaces to indent each level of JSON.
      onlySerializePublicFields - If true, only serialize public fields.
      Returns:
      The object graph in JSON form.
      Throws:
      IllegalArgumentException - If anything goes wrong during serialization.