JsonSerializable<T> Interface
Type Parameters
- T
The type of the object that is JSON serializable.
public interface JsonSerializable
Indicates that the implementing class can be serialized to and deserialized from JSON.
Since deserialization needs to work without an instance of the class, implementing this interface it's assumed the class has a static method fromJson(JsonReader)
that deserializes an instance of that class. The contract for reading JSON from JsonReader is that the initial state of the reader on call will either be a null JsonToken or be the JsonToken after the FIELD_NAME for the object. So, for objects calling out to other JsonSerializable<T> objects for deserialization, they'll pass the reader pointing to the token after the FIELD_NAME. This way objects reading JSON will be self-encapsulated for reading properly formatted JSON. And, if an error occurs during deserialization an IllegalStateException should be thrown.
Method Summary
Modifier and Type | Method and Description |
---|---|
static T |
fromJson(JsonReader jsonReader)
Reads a JSON stream into an object. |
abstract
Json |
toJson(JsonWriter jsonWriter)
Writes the object to the passed JsonWriter. |
Method Details
fromJson
public static T
Reads a JSON stream into an object.
Implementations of JsonSerializable<T> must define this method, otherwise an UnsupportedOperationException will be thrown.
Parameters:
Returns:
Throws:
jsonReader
.
toJson
public abstract JsonWriter toJson(JsonWriter jsonWriter)
Writes the object to the passed JsonWriter.
The contract for writing JSON to JsonWriter is that the object being written will handle opening and closing its own JSON object. So, for objects calling out to other JsonSerializable<T> objects for serialization, they'll write the field name only then pass the JsonWriter to the other JsonSerializable<T> object. This way objects writing JSON will be self-encapsulated for writing properly formatted JSON.
Parameters:
Returns:
Throws:
jsonWriter
.
Applies to
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per