고슴맨쉬
망치와 공(空)
고슴맨쉬
  • 분류 전체보기 (155)
    • 💡 UXUI (4)
      • UXUI (2)
      • UI (2)
      • UX (0)
    • 🟨 JavaScript (66)
      • 개념 (42)
      • 정리 (2)
      • 문제풀기 (프로그래머스, 코딩애플) (15)
      • 응용하여 자동화or문제해결하기 (2)
      • 기타 (5)
    • ⚛️ React (49)
      • 개념 (27)
      • 개념(Redux) (3)
      • 정리 (4)
      • 문제풀기 (코딩애플: React) (15)
    • 📘 TypeScript (10)
      • 개념 (8)
      • 문제풀기 (코딩애플) (2)
    • 🌐 HTML,CSS (18)
      • 실무에서 자주 발생한 오류들 (10)
      • 뒤늦게 알아서 뼈아픈 유용한 CSS (6)
      • 기타 자주 쓰는 CSS (2)
    • 💻 CS (8)
      • CS (5)
      • 정규표현식 (2)
      • Git,Github (1)

태그

  • redux
  • CSS
  • 삼항연산자
  • axios
  • object
  • class
  • 프로그래머스
  • Props
  • JavaScript
  • 오류
  • json
  • TypeScript
  • CS
  • Ajax
  • UXUI
  • useEffect
  • state
  • 코딩애플
  • react
  • array
전체 방문자
오늘
어제
hELLO · Designed By 정상우.
고슴맨쉬

망치와 공(空)

🟨 JavaScript/개념

[드림코딩] Object to JSON (stringify)

2022. 6. 29. 12:50

Object to JSON

stringify(obj)

stringify는 데이터를 string타입으로 변환한다.

let json = JSON.stringify(true);

console.log(json); //"true"
let json = JSON.stringify(['Noran','Paran']);

console.log(json);
//["Noran","Paran"]

한개의 single quote가 아닌 double quote로 바뀐 것을 볼 수 있다. 이것이 JSON의 규격사항이다.

 

또한 아래처럼 함수나 javascript에만 자체적으로 들어있는 데이터도 JSON에 포함되지 않는다.

const coder = {
  name: 'Noran',
  language: 'Javascript',
  height: null,
  birthDate: new Date(),
  symbol: Symbol('id'),
  sayhi: () => {
    console.log(`Hello, I'm ${name}!`);
  },
};

let json = JSON.stringify(coder);
console.log(json);

//{"name":"Noran","language":"Javascript","height":null,"birthDate":"2022-06-29T03:38:30.798Z"}

 

내가 원하는 property만 골라서 JSON으로 전달할 수 있다.

let json = JSON.stringify(coder, ['name','language']);
console.log(json);

// {"name":"Noran","language":"Javascript"}

조금더 세밀하게 통제하고 싶을 때 아래처럼 콜백함수를 사용할 수 있다.

json = JSON.stringify(coder, (key, value) => {
  console.log(`key: ${key}, value: ${value}`);
  return value;
});
console.log(json);

// key: , value: [object Object]
// key: name, value: Noran
// key: language, value: Javascript
// key: height, value: null
// key: birthDate, value: 2022-06-29T03:46:52.806Z
// key: sayhi, value: () => {
//    console.log(`Hello, I'm ${name}!`);
//  }
// {"name":"Noran","language":"Javascript","height":null,"birthDate":"2022-06-29T03:46:52.806Z"}
json = JSON.stringify(coder, (key, value) => {
  console.log(`key: ${key}, value: ${value}`);
  return key ==='name'?'Paran' : value;
});
console.log(json);

// key: , value: [object Object]
// key: name, value: Noran
// key: language, value: Javascript
// key: height, value: null
// key: birthDate, value: 2022-06-29T03:49:50.917Z
// key: sayhi, value: () => {
//     console.log(`Hello, I'm ${name}!`);
//   }
// {"name":"Paran","language":"Javascript","height":null,"birthDate":"2022-06-29T03:49:50.917Z"}

출처 : 드림코딩 https://www.youtube.com/@dream-coding / MDN https://developer.mozilla.org/ko

저작자표시 비영리 동일조건 (새창열림)

'🟨 JavaScript > 개념' 카테고리의 다른 글

[mdn, 드림코딩, 코딩애플] 콜백함수 (1) : 동기와 비동기 개념  (0) 2022.07.12
[드림코딩] JSON to Object (parse)  (0) 2022.07.12
[드림코딩] JSON이란?  (0) 2022.06.29
[드림코딩] 유용한 배열(array) api (3) : reduce, reduceRight, sort, api 다중으로 쓰기  (0) 2022.06.15
[드림코딩] 유용한 배열(array) api (2) : filter, map, some, every  (0) 2022.06.09
    '🟨 JavaScript/개념' 카테고리의 다른 글
    • [mdn, 드림코딩, 코딩애플] 콜백함수 (1) : 동기와 비동기 개념
    • [드림코딩] JSON to Object (parse)
    • [드림코딩] JSON이란?
    • [드림코딩] 유용한 배열(array) api (3) : reduce, reduceRight, sort, api 다중으로 쓰기
    고슴맨쉬
    고슴맨쉬
    부수되 집착하지 않고, 이해하되 머무르지 않기

    티스토리툴바