flutter

quicktype.io 를 통해서 데이터 객체 생성하기

coens 2023. 9. 4. 01:17

https://app.quicktype.io/

여기를 이용하면 귀찮은 데이터 객체 생성하기를 해주고 관련 함수도 만들어 준다.

- 나는, 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