JSON to Freezed Generator adalah extension Visual Studio Code untuk mengubah JSON menjadi Dart model menggunakan freezed, freezed_annotation, dan json_serializable.
Extension ini cocok untuk Flutter developer yang sering membuat model response API secara manual.
Features
- Generate Dart Freezed model dari JSON
- Support generate dari clipboard
- Support generate dari selected text di editor
- Support nested object
- Support array/list
- Convert
snake_caseJSON key menjadicamelCaseDart field - Auto generate
@JsonKey(name: "...") - Auto generate helper function from JSON string
- Auto generate
partfile:.freezed.dart.g.dart
Requirements
- flutter pub add freezed_annotation json_annotation
- flutter pub add dev:freezed dev:build_runner dev:json_serializable
Usage
Generate from Clipboard
- Copy JSON dari Postman, browser, Swagger, atau file lain.
- Buka command palette (Ctrl+Shift+P atau Cmd+Shift+P)
- Pilih "JSON to Freezed: Generate from Clipboard"
Generate from Selection
- Select JSON di editor
- Buka command palette (Ctrl+Shift+P atau Cmd+Shift+P)
- Pilih "JSON to Freezed: Generate from Selection"
Mapping Type
| JSON Value | Dart Type |
|---|---|
| String | String? |
| Integer | int? |
| Decimal | double? |
| Boolean | bool? |
| Null | dynamic |
| Object | Generated Freezed class |
| Array of primitive | List<T>? |
| Array of object | List<Model>? |
Generate Build
- flutter pub run build_runner build --delete-conflicting-outputs
- dart run build_runner watch --delete-conflicting-outputs
Example
Input JSON
{
"status": true,
"message": "Login Accepted",
"data": {
"id": 167,
"name": "John Doe",
"email": "[email protected]",
"no_ktp": "2345678910111213",
"role": {
"id": 13,
"name": "Owner",
"guard_name": "web"
},
"is_active": true
},
"http_code": 200
}
Known Limitations
- Nama class nested object mengikuti nama key JSON.
- Empty array akan dianggap sebagai List.
- Null value akan dianggap sebagai dynamic.
- Belum membaca seluruh file JSON secara otomatis tanpa selection.
- Belum otomatis menjalankan build_runner.
License
MIT