[JSON] 이해하기 (총정리)

seon·2024년 3월 1일

데이터분석

목록 보기
6/10
post-thumbnail

# JSON이란?

  • 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 XML을 대체해서 데이터 전송에 사용한다.
  • 데이터 포맷일 뿐이며 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법.

# JSON 특징

  • JSON은 JavaScript Object Notation 의 약자입니다.
  • 서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다. => 서버 개발자들이 많이 이용하는 것 같다.
  • javascript 객체 표기법과 아주 유사함. => javascript를 이용하여 JSON형식문서를 javascript객체로 변환할 수 있다는 이점이 있다.
  • Js 문법과 굉장히 유사하지만 텍스트 형식일 뿐이다.
  • 다른 프로그래밍 언어를 이용해서도 쉽게 만들 수 있다.
  • 특정 언어에 종속x, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링할 수 있는 라이브러리를 제공함.

# JSON vs. XML

  • XML은 읽기가 어렵고 코딩 민첩성 측면에서도 아쉬운 점이 많은데, JSON은 이러한 문제를 해결하도록 만들어졌다. JSON이 XML을 거의 대체했다는 것은 별로 놀라운 일은 아니다.

# JSON vs. YAML vs. CSV

# JSON 형식

왕초보를 위한 JSON 참고

{
  "name" : value, /* 기본 자료형, [배열], {객체} etc. */
  "name" : value,
  "name" : value,
  "name" : value,
  "employees": [
    {
      "name": "Surim",
      "lastName": "Son"
    },
    {
      "name": "Someone",
      "lastName": "Huh"
    },
    {
      "name": "Someone else",
      "lastName": "Kim"
    } 
  ]
}
  • JSON은 name-value 쌍으로 이루어져 있다.
  • name인 애들은 무조건 String이기때문에 반드시 큰따옴표로 묶어줘야한다.
  • 중괄호{로 시작되는 것의 의미: 이제 객체(Object)가 나올거야!라는 소리이다.
  • JSON에서의 객체는 name-value의 쌍의 집합이다.
  • 각 쌍들은 쉼표(,)로 구분된다.
  • name과 value는 콜론(:)으로 이어져 있다.
  • 가장 마지막줄에 }즉 객체가 하나 나옴
  • 대괄호[]는 배열을 의미
    각 배열의 요소는 기본자료형, 배열, 객체여도 괜찮다.
[10, {"v":20}, [30, "마흔"]]

자, 대괄호[로 시작했으니 이건 배열을 나타내는 것이겠네요. 이 안에는 기본자료형10, 객체 { "v" : 20 } , 배열[30,"마흔"]이 들어갈 수 있는것이죠!

  • 객체는 반드시 name-value의 쌍
    value는 배열, 또는 객체여도 된다.

# JSON 파싱이란?

= JSON 읽기

  • 데이터 파싱은 데이터를 분석하고 원하는 정보를 추출하는 과정을 말한다.
  • 'JSON 파싱'해야 되는 이유는 JSON라는 형식에서 데이터를 뽑아야 사용할 수 있기 때문이다.

# JSON이 가져올 수 있는 데이터

  • JSON으로 가져올 수 있는 데이터는 해당 Javascript가 Load된 서버의 데이터에 한정된다.
  • 예를 들어, http://kwz.kr/json.js에서 불러올 수 있는 데이터는 kwz.kr 서버에 존재하는 것만 가능하다.
    (구글 데이터를 불러온다거나 네이버 데이터를 불러온다거나 할 수 없다.)
    JSON은 단순히 데이터 Format일 뿐이며 그 데이터를 불러오기 위해선 XMLHttpRequest()라는 Javascript 함수를 사용해야 하는데 이 함수가 동일 서버에 대한 것만 지원하기 때문이다.

# JSON과 SQL

예제1: JSON 데이터 저장

CREATE TABLE JsonTable (
  ID INT PRIMARY KEY,
  Data JSON
);
INSERT INTO JsonTable (ID, Data) VALUES (1, '{"name": "John Doe", "age":30}');

예제2: JSON 데이터 조회

SELECT JSON_EXTRACT(Data,'$.name') AS Name FROM JsonTable WHERE ID = 1;

예제3: JSON 데이터 수정

UPDATE JsonTable
SET Data=JSON_SET(Data, '$.age', 31) WHERE ID = 1;

예제4: JSON 데이터에 새 속성 추가

UPDATE JsonTable
SET Data = JSON_INSERT(Data, '$.address', '123 Main St') WHERE ID = 1;

예제5: JSON 데이터에서 속성 삭제

UPDATE JsonTable
SET Data = JSON_REMOVE(Data, '$.age') WHERE ID = 1;

# JSON 엑셀로 바꾸기 (json to xlsx, csv)

profile
🌻

0개의 댓글