Dart:
עבודה עם JSON
איך לעשות:
Dart מספקת תמיכה מובנית ל-JSON עם הספריה dart:convert
, ומקלה על קידוד ופענוח של JSON. להלן דוגמאות המדגימות פעולות בסיסיות:
פיענוח מחרוזת JSON לאובייקט של Dart:
import 'dart:convert';
void main() {
// דוגמת מחרוזת JSON
String jsonString = '{"name": "John", "age": 30, "email": "[email protected]"}';
// פענוח JSON ל-Map של Dart
Map<String, dynamic> user = jsonDecode(jsonString);
print('שלום, ${user['name']}! הנך בן ${user['age']} שנים.');
// פלט: שלום, John! הנך בן 30 שנים.
}
קידוד אובייקט של Dart למחרוזת JSON:
import 'dart:convert';
void main() {
// דוגמת אובייקט של Dart
Map<String, dynamic> user = {
'name': 'Jane',
'age': 25,
'email': '[email protected]'
};
// קידוד Map של Dart ל-JSON
String jsonString = jsonEncode(user);
print(jsonString);
// פלט: {"name":"Jane","age":25,"email":"[email protected]"}
}
שימוש ב-json_serializable
למודלים מורכבים:
עבור מודלים מורכבים, סידור ידני יכול להיות מסובך. החבילה json_serializable
מאטמטת את התהליך הזה. היא דורשת הגדרה נוספת, כולל הוספת תלות ב-pubspec.yaml
שלך ויצירת קבצי בנייה. לאחר ההגדרה, ניתן להשתמש בה כדלקמן:
- הגדרת מודל עם הערות:
import 'package:json_annotation/json_annotation.dart';
part 'user.g.dart';
@JsonSerializable()
class User {
String name;
int age;
String email;
User({required this.name, required this.age, required this.email});
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
Map<String, dynamic> toJson() => _$UserToJson(this);
}
- יצירת הקוד הסטנדרטי לסידור:
השתמש בפקודת ה-build runner ליצירת קובץ ה-
user.g.dart
:
flutter pub run build_runner build
- השתמש במודל שלך:
void main() {
// פיענוח JSON ל-User
Map userMap = jsonDecode('{"name": "John", "age": 30, "email": "[email protected]"}');
User user = User.fromJson(userMap);
print('משתמש: ${user.name}, גיל: ${user.age}');
// פלט: משתמש: John, גיל: 30
// המרת User בחזרה ל-JSON
String jsonString = jsonEncode(user.toJson());
print(jsonString);
// פלט: {"name":"John","age":30,"email":"[email protected]"}
}
דוגמאות אלו ממחישות את האינטראקציות הבסיסיות והמתקדמות עם JSON ב-Dart, מעניקות למפתחים את היכולת לנהל משימות סידור נתונים באפליקציות שלהם בצורה חלקה.