본문 바로가기
ETC/Flutter

[flutter] Json이란 무엇인가?

by dkswnkk 2021. 10. 17.

JSON(JavaScript Object Notation) 이란?

  1. JavaScript Object Notation 이라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식
  2. JavaScript에서 객체를 만들 때 사용하는 표현식을 의미한다.
  3. JSON은 데이터 포맷일 뿐이며, 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법일 뿐이다.

JSON 특징

  1. 서버와 클라이언트 간의 교류애서 일반적으로 많이 사용된다.
  2. JSON 문서 형식은 자바스크립트 객체의 형식을 기반으로 만들어져 자바스크립트 객체 표기법과 아주 유사하다.
  3. 자바스크립트 문법과 굉장히 유사하지만 텍스트 형식일 뿐이다.
  4. 특정 언어에 종속되지 않으며, Flutter를 포함한 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리를 제공한다.

XML vs JSON

데이터를 나타낼 수 있는 방식은 여러가지가 있지만, 대표적인 것이 XML 이고, 최근에 많이 사용되는 것이 JSON 이다.

구분 특징 예시
XML 데이터 값 양쪽으로 태그가 있는 방식으로 표현한다. 스크린샷 2021-07-09 오후 9 48 39
JSON 중괄호({})와 같은 형식을 사용하며, 값을 ' , ' 로 나열한다. 스크린샷 2021-07-09 오후 9 47 44

JSON 문법

  1. JSON 형식은 자바스크립트 객체와 마찬가지로 key / value 가 존재할 수 있으며 key값이나 문자열은 항상 쌍따옴표를 이용하여 표기해야 한다.
  2. 객체, 배열 등의 표기를 사용할 수 있다.
  3. JSON형식에서는 null, number, string, array, object, boolean 을 사용할 수 잇다.

JSON 형식

1) name-value 형식의 쌍

  • 여러가지 언어들에서 object등으로 실현되었다.
  • {String key: String vaule}
  • { "firstName": "Ahn", "lastName": "JuHyeong", "email": "dkswnkk@1234.com" }

2) 값들의 순서화 된 리스트 형식

  • 여러가지 언어들에서 배열(Array) 등으로 실현되었다.
  • [value1, value2,...]
{
  "firstName": "Ahn",
  "lastName": "Juhyeong",
  "email": "dkswnkk@1234.com",
  "hobby": ["health","coding"]
}

JSON의 문제점

  • AJAX는 단순히 데이터만이 아니라 JavaScript 그 자체도 전달할 수 있다.
  • 이는 JSON데이터 라고 해서 받았는데 단순 데이터가 아니라 JavaScript가 될 수 있어, 그게 실행 되는 악성스크립트가 될 수도 있다는 것이다.
  • 위와 같은 이유로 받은 내용에서 데이터만 순수하게 추출하기 위한 JSON관련 라이브러리를 따로 사용하기도 한다.

JSON이 가져올 수 있는 데이터

  • JSON으로 가져올 수 있는 데이터는 해당 자바스크립트가 로드된 서버의 데이터에 한정된다.
  • 예를 들어, http://test.com/test.js 에서 불러올 수 있는 데이터는 test.com 서버에 존재 하는 것 만 가능하다.

'ETC > Flutter' 카테고리의 다른 글

[flutter] Tabbar 구현하기  (0) 2021.10.17
[flutter] XML 파싱하기  (0) 2021.10.17
[flutter] Json 파싱하기  (0) 2021.10.17
[flutter] Future 와 async를 사용해보자.  (0) 2021.10.17
[flutter] Future란 무엇인가?  (3) 2021.10.17
[flutter] const와 final의 특징  (0) 2021.10.17

댓글