[JS] 자바스크립트 중급 part3 정리

2022. 7. 6. 17:17·Frontend/Study
728x90

1. JSON(javascirpt object notation) 

1) 정의 : 자바스크립트 객체 표기법 !

2) 특징

- 서버와 웹페이지간의 데이터를 주고받을 때 많이 사용

- key와 value의 쌍으로 이루어진 데이터 객체를 전달하기 위해 만들어진 포맷

- 예전에 쓰던 xml을 대체하여 만들어졌다.(xml을 굉장히 복잡하다 !)

- 계층적인 구조를 가지며 간결하고 짧다

 

* xml과 json 비교

> xml  : 엔드태그를 사용하여 데이터 표현

<?xml version="1.0"?>
<CAT>
  <NAME>Izzy</NAME>
  <BREED>Siamese</BREED>
  <AGE>6</AGE>
  <ALTERED>yes</ALTERED>
  <DECLAWED>no</DECLAWED>
  <LICENSE>Izz138bod</LICENSE>
  <OWNER>Colin Wilcox</OWNER>
</CAT>

> json : 엔드태그가 필요없다

 

3) 구조

let people = [
  {"firstName" : "길동", "lastName":"홍"},
  {"firstName" : "순신", "lastName":"이"},
  {"firstName" : "감찬", "lastName":"강"},
]

 

2. JSON 관련 메서드

1) JSON.parse() : json 형식의 데이터를 자바스크립트 객체로 변환

JSON.parse(jsonText)

2) JSON.stringify() : 자바스크립트 객체를 json 형식의 텍스트로 변환

JSON.stringify(dataObject)

- 객체나 배열은 string으로 변환되지만 함수, symbol, undefined 는 변환 되지 않는다 ! ! (중간에 있으면 무시)

홑따옴표가 쌍따옴표로 바뀜 !

- 배열 안에 있는 함수, symbol, undefined 는 null 로 처리된다.

- 객체를 출력할 때 for ~ in 반복문을 주로 사용한다. (배열엔 for ~ of 반복문 사용?) 

 

- space 옵션(3번째 인자) : 가독성이 안좋은 객체를 가독성이 좋게 바꿔줌

JSON.stringfy(객체, null, 들여쓰기수(ex-1,2,'\t'));

- replacer 옵션(2번째 인자) : 원하는 객체의 속성들만 선택해서 지정할 수 있다. (생략가능 or NULL)

 >지정한 키값을 배열 인자로 넣어 원하는 키값과 벨류 추출가능

JSON.stringfy(jsonData, ["key 값", ...]/함수 , '\t');

> value값을 체크하여 string만 패스(undefined)하고 숫자형만 json문자열로 만들수 있다.

function replacer(key,value){
  if(typeof value === 'string')
    return undefined;
  else return value;
}

JSON.stringify(json, replacer, '\t');

 

728x90
저작자표시 비영리 (새창열림)

'Frontend > Study' 카테고리의 다른 글

[React] React 완벽 가이드 섹션 13 클래스 컴포넌트  (0) 2022.08.23
[CSS] 안 잡히는 알 수 없는 빈 여백 원인 찾기  (0) 2022.07.08
[React] React 완벽 가이드 섹션 10 : Reducer을 사용하여 부작용처리& Context API 사용하기  (0) 2022.05.04
[React] React 완벽 가이드 섹션 9 : 프레그먼트 작업, Portals & Ref  (0) 2022.05.02
[React] React 완벽 가이드 섹션 6 : 리액트 컴포넌트 스타일링  (0) 2022.04.29
'Frontend/Study' 카테고리의 다른 글
  • [React] React 완벽 가이드 섹션 13 클래스 컴포넌트
  • [CSS] 안 잡히는 알 수 없는 빈 여백 원인 찾기
  • [React] React 완벽 가이드 섹션 10 : Reducer을 사용하여 부작용처리& Context API 사용하기
  • [React] React 완벽 가이드 섹션 9 : 프레그먼트 작업, Portals & Ref
BeNI
BeNI
코딩하는 블로그
  • BeNI
    코딩못하는컴공
    BeNI
  • 전체
    오늘
    어제
    • Menu (253)
      • My profile (1)
      • 회고 | 후기 (8)
      • Frontend (65)
        • Article (11)
        • Study (35)
        • 프로그래머스 FE 데브코스 (19)
      • Backend (0)
      • Algorithm (58)
        • Solution (46)
        • Study (12)
      • Major (111)
        • C&C++ (23)
        • Java (20)
        • Data Structure (14)
        • Computer Network (12)
        • Database (15)
        • Linux (6)
        • Architecture (3)
        • Lisp (15)
        • OS (1)
        • Security (2)
      • etc (2)
  • 링크

    • 깃허브
    • 방명록
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    프로그래머스
    자료구조
    C++
    Algorithm
    lisp
    react
    파일처리
    리팩토링
    백준
    데브코스
  • hELLO· Designed By정상우.v4.10.2
BeNI
[JS] 자바스크립트 중급 part3 정리
상단으로

티스토리툴바