[Section 3] JSON

정호·2023년 4월 12일
1

코드스테이츠

목록 보기
34/49

JSON

JSON은 JavaScript Object Notation의 줄임말로, 데이터 교환을 위해 만들어진 객체 형태의 포맷이다. 네트워크를 통해, 어떤 객체 내용을 다른 프로그램에 전송할 때 형태를 변환할 때 사용된다.

메시지 객체가 전송할 수 있게 하려면, 메시지를 보내는 발신자와 메시지를 받는 수신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있는 형태여야 한다.

  • 수신자(reciever)와 발신자(sender)가 같은 프로그램을 사용한다.
  • 문자열처럼 범용적으로 읽을 수 있어야 한다.

❖ 객체는 타입 변환을 이용해 String으로 변환할 경우 객체 내용을 포함하지 않는다.
JavaScript에서 객체를 문자열로 변환하기 위해 메서드(message.toString())나 형 변환(String(message))을 시도하면, [object Object] 가 리턴된다.

JSON 활용

  • JSON.stringify : 객체를 JSON으로 변환
  • JSON.parse : JSON을 객체로 변환
const message = {
  sender: "jungo",
  receiver: "JG",
  message: "Hello",
  createdAt: "2023-04-12 12:00"
}

JSON.stringify

let transferableMessage = JSON.stringify(message)

console.log(transferableMessage) 
// `{ sender: "jungo","receiver": "JG","message": "Hello","createdAt": "2023-04-12 12:00"}`

console.log(typeof(transferableMessage))
// `string`

stringify하는 과정은 직렬화(serialize)라고 한다

JSON.parse

JSON으로 반환된 객체의 타입은 문자열이다. 발신자는 직려로하한 문자열을 보낼 수 있다.

수신자가 메세지를 객체로 바꾸는 방법

let packet = `{ sender: "jungo","receiver": "JG","message": "Hello","createdAt": "2023-04-12 12:00"}`
let obj = JSON.parse(packet)

console.log(obj)
/*
 {
  sender: "jungo",
  receiver: "JG",
  message: "Hello",
  createdAt: "2023-04-12 12:00"
}
 */

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

JSON.parse하는 과정은 역직렬화(deserialize)라고 한다.

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

0개의 댓글