TIL 👩🏻‍💻

TIL : Stringify JSON

heesue 2021. 3. 27. 00:27

1. JSON(Javascript Object Notation)

Javascript에서 객체를 만들 때 사용하는 표현식


2. JSON 데이터

· 데이터의 이름을 항상 큰따옴표("")와 함께 입력!!

· 숫자, 문자열, 불리언, 객체, 배열, Null 이 올 수 있다.

· JSON 객체 : 중괄호({})로 둘러싸 표현!!

· JSON 배열 : 대괄호([])로 둘러싸 표현!!

"데이터 이름":값

3. JSON method

JSON.stringify () : 인수로 전달받은 자바스크립트 객체를 문자열로 변환하여 반환

JSON.parse () : 인수로 전달받은 문자열을 자바스크립트 객체로 변환하여 반환

toJSON () : 자바스크립트의 Date 객체의 데이터를 JSON 형식의 문자열로 변환하여 반환


4. JSON.stringify 함수 구현

테스트들을 확인해보면 구조를 알 수 있다. 또는 콘솔창에 JSON.stringify()를 사용해보며 메서드를 익히자!!

먼저 obj가 null일 때, obj의 타입이 숫자, 불리언, 문자열, 배열, 객체인 경우로 나눠 생각해보자.

숫자, 불리언인 경우는 문자열 형태로 나와야 함을 알 수 있고 배열인 경우는 배열 안에 배열이 존재하기 때문에 재귀함수를 이용해 나타내야 함을 알 수 있다. 객체인 경우 또한 마찬가지이다.

function stringifyJSON(obj) { //obj가 객체인 경우만 코드 예시를 들어보자.
    if (typeof obj === "object") {
    let result = "";
    for (let key in obj) {
      if (obj[key] === undefined || typeof obj[key] === "function") {
        result = String(result);
      } else {
        result = result + `${stringifyJSON(key)}:${stringifyJSON(obj[key])},`;
      }
    }
    result = result.substr(0, result.length - 1);
    return `{${result}}`;
  };
  
//function stringifyJSON(obj) { //다른 방법
//   if (typeof obj === 'object') {
//     let newObj = [];
//     for (let key in obj) {
//       if (obj[key] === undefined || typeof obj[key] === 'fucntion') {
//         return '{}';
//       } else {
//         newObj.push(`${stringifyJSON(key)}:${stringifyJSON(obj[key])}`)
//       }
//     }
//     return `{${newObj}}`;
//   };