데이터 직렬화에서 가장 많이 쓰이는 데이터 형식이다.
데이터 직렬화 서버와 데이터를 주고받기 위해 일관된 형식으로 변환하는 작업
String -> Map -> JSON
JSON -> Map -> String
위의 두 가지 형태로 데이터가 오간다.
따라서 JSON 데이터를 사용하고 싶을 때는
의 세 가지 단계가 필요하다.
"""~""";
따옴표를 세 개 붙이면 내부에는 따옴표 기호에 상관없이 값을 입력할 수 있다.
이 안에 JSON으로 받아올 데이터를 입력해주면 된다.
아래는 예시 코드이다.
책과 관련된 데이터라서 제목, 저자, 출판사, isbn등의 정보를 포함한다.
데이터를 변환할 때는 fromJson
과 toJson
함수를 만들어야 한다.
작명 방식이 정해진 것은 아니지만 보통은 위의 이름을 쓴다고 한다.
먼저 클래스 안에 필요한 데이터를 선언하고 생성자로 받아오게끔 한다.
그 다음 함수를 정의해준다.
fromJson
Json의 데이터를 객체로 가져오는 함수이다.
매개변수로 Map을 쓰고, this
를 이용해서 데이터를 가져온다.
그런데 지금 보니까 함수 이름에 오타가 있다...fromjson이어야 하는데...
toJson
Json으로 데이터를 넘겨주는 함수이다.
매개변수는 없고 함수의 타입이 Map이다.
필요한 데이터를 입력한 뒤 return하는 것을 확인할 수 있다.
데이터 연결
jsonDecode로 데이터를 변환한 다음 객체에 넣어주고 있다.
💡 JSON 데이터 변환하기
데이터 생성 -> 변환 함수 작성(from, to) -> Map으로 변환 -> 객체로 변환
Model + View + ViewModel 로 계층을 나누어서 개발하는 아키텍처를 말한다.
기존 State
만으로 상태관리를 할 때는 StatefullWidget
안에 상태를 지켜보는 코드와 화면에 보여지는 영역을 구성하는 코드가 모두 포함되어있었다.
실제로 setState
함수를 화면 구성용 코드와 분리하고 싶었는데 그게 안 돼서 코드가 지저분해진 경험이 있다.
MVVM 모델에서는 역할에 따라 Model, ViewModel, View가 나눠져있기 때문에 코드 정리가 수월하고 유지보수도 간편해진다.
Open Application Programming Interface
서비스나 소프트웨어 기능을 외부의 개발자가 이용할 수 있도록 정의한 인터페이스이다.
조금 더 풀어서 설명하자면, 우리가 특정 검색 엔진의 검색 결과를 받아와서 프로그램에 사용하고 싶을 때, 해당 검색 결과를 JSON등 규격화된 데이터로 반환해주는 서비스를 말한다.
vscode의 확장 프로그램을 사용하면 아래와 같이 open api를 제공하는 사이트로부터 데이터를 받아올 수 있다. 여기에서 사용한 프로그램은 thunder client
이다.