Gazelle Serialization Library
This library is part of the Gazelle backend framework. It provides serialization and deserialization functionality for Dart objects, supporting both primitive types and custom models.
Key Features
- Serialization of Dart objects to JSON format
- Deserialization of JSON objects to Dart instances
- Support for primitive types (String, num, bool, DateTime)
- Handling of lists and nested objects
- Extensible through
GazelleModelProvider
andGazelleModelType
Usage
Serialization
To serialize an object:
final jsonObject = serialize(object: myObject, modelProvider: myModelProvider);
Deserialization
To deserialize an object:
final myObject = deserialize<MyType>(jsonObject: jsonData, modelProvider: myModelProvider);
To deserialize an list of objects:
final myObjects = deserializeList<MyType>(jsonObject: jsonData, modelProvider: myModelProvider);
Defining custom models
- Create a class that extends
GazelleModelType
:
class MyTypeModel extends GazelleModelType<MyType> {
@override
Map<String, dynamic> toJson(MyType value) {
// Implement serialization logic
}
@override
MyType fromJson(Map<String, dynamic> json) {
// Implement deserialization logic
}
}
- Create a
GazelleModelProvider
:
class MyModelProvider extends GazelleModelProvider {
@override
Map<Type, GazelleModelType> get modelTypes => {
MyType: MyTypeModel(),
// Add other custom types here
};
}
Notes
- The library automatically handles the serialization of DateTime to ISO 8601 format.
- For unrecognized types, the library will return the string representation of the object.
Libraries
- gazelle_serialization
- Serialization library for Gazelle framework.