JsonObject<T extends JsonModel> class
A specialized JSON field for handling nested JsonModel objects.
JsonObject extends JsonField<T> to provide type-safe handling of
nested model objects in JSON data. It automatically deserializes JSON
objects into model instances and provides convenient access to nested
fields using the [] and []= operators.
Key Features:
- Automatic deserialization of JSON objects to model instances
- Nested field access using
[]and[]=operators - Lazy instantiation: creates a new model instance if value is null
- Type-safe operations with generic type parameter
Type Parameter:
T: The type of JsonModel this field holds (e.g.,UserModel,AddressModel).
Usage Example:
final address = JsonObject<AddressModel>('address');
address.value = {
'street': '123 Main St',
'city': 'New York'
}; // Automatically deserializes to AddressModel
print(address['city']); // 'New York'
address['zipCode'] = '10001'; // Set nested field
See also:
Constructors
- JsonObject(String fieldName)
- Creates a new JsonObject field with the specified field name.
Properties
- error ↔ String?
-
An error message associated with this field, if any.
getter/setter pairinherited
- fieldName → String
-
The name of this field as it appears in JSON data.
finalinherited
- hasError → bool
-
Returns
trueif this field has an error message.no setterinherited - hashCode → int
-
Returns the hash code for this field.
no setterinherited
- hasInformation → bool
-
Returns
trueif this field has an informational message.no setterinherited - hasWarning → bool
-
Returns
trueif this field has a warning message.no setterinherited - information ↔ String?
-
An informational message associated with this field, if any.
getter/setter pairinherited
- isNotNull → bool
-
Returns
trueif the raw value of this field is notnull.no setterinherited - isNull → bool
-
Returns
trueif the raw value of this field isnull.no setterinherited - rawValue ↔ T?
-
The raw, unprocessed value stored in this field.
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- value ↔ T
-
Returns the model object, creating a new instance if needed.
getter/setter pairoverride
- warning ↔ String?
-
A warning message associated with this field, if any.
getter/setter pairinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toJson(
) → Map< String, dynamic> ? -
Serializes the nested model object to a JSON map.
override
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
Determines whether this field is equal to another object.
inherited
-
operator [](
String name) → dynamic - Retrieves the value of a nested field within the model object.
-
operator []=(
String name, dynamic value) → void - Sets the value of a nested field within the model object.