[Flutter] json 파싱하기

이소진·2021년 7월 24일
0

0. 데이터 가공 순서

  • jsonDecode함수를 사용하여 문자열에서 JSON 객체 가져 오기
  • JSON의 키 / 값 쌍에 해당하는 필드가있는 클래스를 만듦
  • 각 JSON 객체 값을 클래스 인스턴스의 필드에 할당

1. JSON 파싱

var uriResponse = await http.get(
      Uri.parse(
        'http://~~~',
      ),
    );
 
var json = jsonDecode(uriResponse.body);
return json;

2. 잘못된 예시

final response= await http.get(Uri.https('www.google.com', '/get/'));

3. API KEY나 parameter가 있는 JSON파싱

final url=Uri.parse('https://dapi.kakao.com/v3/search/book?target=title&query=doit;
var response=await http.get(url,
              headers: {"Authorization":"KakaoAK ##비밀"});

4. class를 만들어 json 파싱하기

//User 클래스
class User {
  final String name;
  final String email;

  User(this.name, this.email);

  User.fromJson(Map<String, dynamic> json)
      : name = json['name'],
        email = json['email'];

  Map<String, dynamic> toJson() =>
    {
      'name': name,
      'email': email,
    };
}
  • fromJson
    json string 을 object로 변환해줌
  • toJson
    object를 json string으로 변환해줌
    map 형식으로 변환, jsonEncode에서 스트링으로 만들어줌
//decoding과 데이터 사용
Map userMap = jsonDecode(jsonString);
var user = User.fromJson(userMap);

print('Howdy, ${user.name}!');
print('We sent the verification link to ${user.email}.');
//encoding
String json = jsonEncode(user);

참고자료

profile
webFront / Flutter / iOS 😉

0개의 댓글