Package io.jmix.core

Interface EntitySerialization

All Known Implementing Classes:
EntitySerializationImpl

public interface EntitySerialization
Class that is used for serialization and deserialization of entities to JSON.
  • Field Details

  • Method Details

    • toJson

      String toJson(Object entity, @Nullable FetchPlan fetchPlan, EntitySerializationOption... options)
      Serializes a single entity to the JSON object graph.

      If the fetchPlan parameter is null then all loaded entity properties will be presented in JSON, otherwise only loaded properties that are in the fetchPlan will be in the JSON object.

      The options parameter specify some additional options for the serialization process. For example, repeated entities may be replaced with the object with the only "id" property, making the result JSON more compact. See EntitySerializationOption for details.

      Additionally, an "_entityName" property is added to the JSON objects that represent an entity.

      Parameters:
      entity - an entity to be serialized
      fetchPlan - a fetch plan that defines which entity properties should be added to the result JSON object
      options - options specifying how an entity should be serialized
      Returns:
      a string that represents a JSON object
    • toJson

      String toJson(Collection<?> entities, @Nullable FetchPlan fetchPlan, EntitySerializationOption... options)
      Serializes a collection of entities to the JSON array. Method works like the toJson(Object, FetchPlan, EntitySerializationOption...), but return a JSON array as a result.
      Parameters:
      entities - a list of entities to be serialized
      fetchPlan - a fetch plan that defines which entity properties should be added to the result JSON object
      options - options specifying how an entity should be serialized
      Returns:
      a string that represents a JSON array of objects.
    • toJson

      String toJson(Object entity)
      An overloaded version of the toJson(Object, FetchPlan, EntitySerializationOption...) method with a null fetchPlan parameter and with no serialization options.
      Parameters:
      entity - an entity to be serialized
      Returns:
      a string that represents a JSON object
    • toJson

      String toJson(Collection<?> entities)
      An overloaded version of the toJson(Collection, FetchPlan, EntitySerializationOption...) method with a null fetchPlan parameter and with no serialization options.
      Parameters:
      entities - a collection of entities to be serialized
      Returns:
      a string that represent a JSON array which contains entity objects
    • objectToJson

      String objectToJson(Object object, EntitySerializationOption... options)
      Serializes any custom POJO or collection of POJOs or JSON. If some field in POJO is an entity then this field will be serialized according to entity serialization rules. Date fields are serialized according to the format of the DateTimeDatatype.
      Parameters:
      object - any POJO or collection of POJOs
      options - options specifying how a JSON object graph for fields with type 'Entity' will be serialized
      Returns:
      a string that represents a JSON object or JSON array
    • entityFromJson

      <T> T entityFromJson(String json, @Nullable MetaClass metaClass, EntitySerializationOption... options)
      Deserializes a JSON object to the entity.

      The metaClass parameter defines a result entity metaClass. It is optional. It must be defined if the JSON object doesn't contain an "_entityName" property.

      An entity may be serialized to the JSON in slightly different formats. The format is defined by the options parameter. See EntitySerializationOption for details.

      Parameters:
      json - a string that represents a JSON object
      metaClass - a metaClass of the entity that will be created
      options - options specifying how a JSON object graph was serialized
      Returns:
      an entity
    • entitiesCollectionFromJson

      <T> Collection<T> entitiesCollectionFromJson(String json, @Nullable MetaClass metaClass, EntitySerializationOption... options)
      Deserializes a JSON array of objects to entities collection
      Parameters:
      json - a string that represents a JSON array of objects
      metaClass - a metaClass of the entities that will be created
      options - options specifying how a JSON object graph was serialized
      Returns:
      an entities collection
    • objectFromJson

      <T> T objectFromJson(String json, Type type, EntitySerializationOption... options)
      Deserializes an object of any class from JSON. Date fields are deserialized according to the DateTimeDatatype format, entities object and fields of Entity type are deserialized like in the entityFromJson(String, MetaClass, EntitySerializationOption...) method
      Parameters:
      json - a string that represents an object
      type - type of the object
      options - options specifying how a JSON object graph was serialized
      Returns:
      deserialized object