여기를 이용하면 귀찮은 데이터 객체 생성하기를 해주고 관련 함수도 만들어 준다.
- 나는, Put encoder & decoder in Class 체크를 풀어서 class 밖에 생성되는 목록관련 함수들을 클래스 안으로 넣고 static 메서드로 변환해 주니까 편하드라.
import 'dart:convert';
class Product {
String name;
int age;
Product({
required this.name,
required this.age,
});
factory Product.fromRawJson(String str) => Product.fromJson(json.decode(str));
String toRawJson() => json.encode(toJson());
factory Product.fromJson(Map<String, dynamic> json) => Product(
name: json["name"],
age: json["age"],
);
static List<Product> productFromJson(String str) => List<Product>.from(json.decode(str).map((x) => Product.fromJson(x)));
static String productToJson(List<Product> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
Map<String, dynamic> toJson() => {
"name": name,
"age": age,
};
}
void main(){
Product p0 = Product(name: "coens1", age: 10);
print(p0.name);
String str1 = '{"name" : "coens2", "age" : 20}';
Product p1 = Product.fromRawJson(str1);
print(p1.name);
String str2 = '[{"name" : "coens3", "age" : 30}, {"name": "coens4", "age":40} ]';
List<Product> productFromJson = Product.productFromJson(str2);
print(productFromJson[0].name);
String str3 = Product.productToJson(productFromJson);
print(str3);
}
'flutter' 카테고리의 다른 글
다른 앱으로부터 공유받기 - flutter_sharing_intent (0) | 2023.09.03 |
---|---|
Firebase 데이터베이스 Stream데이터 읽기 (0) | 2022.05.19 |
Value Key (0) | 2022.05.15 |
Global key (0) | 2022.05.15 |