[flutter]JSON 파싱(parsing)하기

2023년 12월 23일 by 진아사랑해

    [flutter]JSON 파싱(parsing)하기 목차
반응형

인터넷에서 데이터를 가져오는 경우에 JSON 형태로 데이터를 제공하는 서버들이 많이 있습니다.

오늘은 서버에서 제공하는 Json 데이터를 어떻게 파싱 하여 읽어야 하는지 알아보겠습니다.

import 'dart:convert';

이 dart:convert는 json 등 다양한 형태의 파일을 encoding/decoding 위해 필요한 라이브러리입니다.

https://api.dart.dev/stable/3.2.4/dart-convert/dart-convert-library.html

 

dart:convert library - Dart API

Encoders and decoders for converting between different data representations, including JSON and UTF-8. In addition to converters for common data representations, this library provides support for implementing converters in a way which makes them easy to ch

api.dart.dev

오늘은 json 파일의 decoding에 대해 알아보겠습니다.

http.Response response = await http.get(Uri.parse('https://sample
if(response.statusCode == 200){
  String jsonData = response.body;
  var myJson = jsonDecode(jsonData)['weather'][0]['description'];
  print(myJson);

특정 웹 사이트로부터 json 파일을 받는 경우에 jsonDecode() 함수를 사용합니다.

https://api.dart.dev/stable/3.2.4/dart-convert/jsonDecode.html

 

jsonDecode function - dart:convert library - Dart API

dynamic jsonDecode(String source, {Object? reviver(Object? key, Object? value )?} ) Parses the string and returns the resulting Json object. The optional reviver function is called once for each object or list property that has been parsed during decoding.

api.dart.dev

아래 내용은 위 사이트의 문서에서 가져온 내용입니다.

const jsonArray = ''' [{"text": "foo", "value": 1, "status": true}, {"text": "bar", "value": 2, "status": false}] ''';

 

final List<dynamic> dataList = jsonDecode(jsonArray);

print(dataList[0]); // {text: foo, value: 1, status: true} print(dataList[1]); // {text: bar, value: 2, status: false} final item = dataList[0];

print(item['text']); // foo

print(item['value']); // 1

print(item['status']); // false

 

List<dynamic>에서 dynamic 타입은 json 파일에서 데이터를 가져올 때 위 예제에서 보듯이 String 또는 integer를 가져오기 때문에 타입을 dynamic으로 선언한 것입니다.

 jsonArray는 json 데이터가  2개 들어있음으로 리스트로 선언한 것입니다.

 

 

반응형