CodeStates/JavaScript

Section3 / Unit1 : JSON.stringify

yeeendy 2023. 6. 12. 10:07

JSON(JavaScript Object Notation)

데이터 교환을 위해 만들어진 객체 형태의 포맷

 

어떠한 객체 내용을 다른 프로그램에 전송한다면?

const message = {
  sender: "나",
  reciever: "너",
  message: "저녁에 만나자",
  createdAt: "2023-06-12 10:10:10"
}
전송할 수 있는 조건(transferable condition)
  • 수신자(reciever)와 발신자(sender)가 같은 프로그램을 사용한다
  • 또는, 문자열처럼 범용적으로 읽을 수 있어야 한다

객체는 타입 변환을 이용해 String으로 변환할 경우 객체 내용을 포함하지 않는다

→ JavaScript에서 .toString()이나 String()을 시도하면, [object Object]라는 결과를 리턴한다

 

이러한 문제를 해결하려면?   → (JSON)

  • JSON.stringify : 객체를 JSON으로 변환
  • JSON.parse : JSON을 객체로 변환
const transferableMessage = JSON.stringify(message)

console.log(transferableMessage)
// `{"sender":"나","reciever":"너","message":"저녁에 만나자","createdAt":"2023-06-12 10:10:10"}`

console.log(typeof(transferableMessage))
// `string`
let packet = `{"sender":"나","reciever":"너","message":"저녁에 만나자","createdAt":"2023-06-12 10:10:10"}`
let obj = JSON.parse(packet);

console.log(obj)
/*
*{
*sender: "나",
*reciever: "너",
*message: "저녁에 만나자",
*createdAt: "2023-06-12 10:10:10"
*}
*/

console.log(typeof(obj))
// `object`

직렬화와 역직렬화

결론

→ JSON은 서로 다른 프로그램 사이에서 데이터를 교환하기 위한 포맷

→ JSON 포맷은 JavaScript를 포함한 많은 언어에서 범용적으로 사용하는 유명한 포맷

 

JSON의 기본 규칙

  자바스크립트 객체 JSON
키는 따옴표 없이 쓸 수 있음
{ key : "property" }
반드시 큰따옴표를 붙여야 함
'{"key":"property"}'
문자열 값 작은 따옴표도 사용 가능
{ "key" : 'property' }
반드시 큰따옴표로 감싸야 함
'{"key":"property"}'
키와 값 사이 공백 사용 가능
{"key" : 'property'}
사용 불가능
'{"key":"property"}'
키-값 쌍 사이 공백 사용 가능
{ "key":'property', num:1}
사용 불가능
'{"key":"property","num":1}'

 

'CodeStates > JavaScript' 카테고리의 다른 글

Section4 / Unit1 : Tree, Graph  (0) 2023.07.10
Section4 / Unit1 : Stack & Queue  (0) 2023.07.07
Section3 / Unit1 : 재귀  (0) 2023.06.09
Section2 / Unit3 : fetch API, axios  (0) 2023.05.17
Section2 / Unit3 : Node.js  (0) 2023.05.16