Problem:
The Agent model implements manual fromJson deserialization:
factory Agent.fromJson(Map<String, dynamic> json) {
return Agent(
id: json['id'] as String,
...
tags: List<String>.from(json['tags']),
...
);
}
Issues:
- Prone to human error and type mismatches
- Lacks compile-time safety
- Harder to maintain and refactor (e.g. when field names/types change)
- Duplicates boilerplate across models
✅ Recommendation: Use JSON Serialization Code Generation
Use json_serializable to generate fromJson/toJson implementations automatically.
Step 1 – Annotate your class:
import 'package:json_annotation/json_annotation.dart';
part 'agent.g.dart';
@JsonSerializable()
class Agent {
final String id;
final String name;
final String description;
final AgentStatus status;
final List<String> tags;
final String? avatarUrl;
final DateTime createdAt;
final DateTime? lastActive;
const Ag
Problem:
The
Agentmodel implements manualfromJsondeserialization:Issues:
✅ Recommendation: Use JSON Serialization Code Generation
Use
json_serializableto generatefromJson/toJsonimplementations automatically.Step 1 – Annotate your class: