← ClaudeAtlas

flutter-implement-json-serializationlisted

Create model classes with `fromJson` and `toJson` methods using `dart:convert`. Use when manually mapping JSON keys to class properties for simple data structures.
izo/Ulk · ★ 1 · Data & Documents · score 68
Install: claude install-skill izo/Ulk
# Serializing JSON Manually in Flutter ## Contents - [Core Guidelines](#core-guidelines) - [Workflow: Implementing a Serializable Model](#workflow-implementing-a-serializable-model) - [Workflow: Fetching and Parsing JSON](#workflow-fetching-and-parsing-json) - [Examples](#examples) ## Core Guidelines - **Import `dart:convert`**: Utilize Flutter's built-in `dart:convert` library for manual JSON encoding (`jsonEncode`) and decoding (`jsonDecode`). - **Enforce Type Safety**: Always cast the `dynamic` result of `jsonDecode()` to the expected type, typically `Map<String, dynamic>` for objects or `List<dynamic>` for arrays. - **Encapsulate Serialization Logic**: Define plain model classes containing properties corresponding to the JSON structure. Implement a `fromJson` factory constructor and a `toJson` method within the model. - **Handle Background Parsing**: If parsing large JSON documents (execution time > 16ms), offload the parsing logic to a separate isolate using Flutter's `compute()` function to prevent UI jank. - **Throw Exceptions on Failure**: When handling HTTP responses, throw an exception if the status code is not successful (e.g., not 200 OK or 201 Created). Do not return `null`. ## Workflow: Implementing a Serializable Model Use this checklist to implement manual JSON serialization for a data model. **Task Progress:** - [ ] Define the plain model class with `final` properties. - [ ] Implement the `factory Model.fromJson(Map<String, dynamic> json)` constructor.