⚡JSON
Java Script Object Notion의 줄임말로, 데이터 교환을 위해 만들어진 객체 형태의 포멧 입니다.
데이터를 어떻게 활용하는지는 프로그래머들의 중요한 역량 중 하나입니다.
개발자라면 어떤 언어에서든 데이터 구조와 실제 데이터를 다른 언어 및 플랫폼에서 해석 가능한 형식으로 전송할 수 있어야 합니다. json은 이를 가능케 하는 데이터 교환 포맷입니다.
json은 몇 안 되는 인간이 읽을 수 있는 문서로 이뤄져 있기 때문에 개발자 사이에서 자주 사용됩니다.
📌JSON 데이터 유형
- String
{"name" : "samsamgo"}
- Num
{
"num1" : 1
"num2" : 2,
"num3" : 3,
"num4" : 4
}
- Boolean
{"trueORfalse" : "true"}
- Null
{ "nothing" : null }
- Object
{
"introduce" : { "name" : "samsamgo", "age" : "20", "sex" : "male"}
}
- Array
{
"introduce" : [
{
"name" : "samsamgo",
"age" : 20,
"sex" : "male"
}
{
"name" : "gesamgo",
"age" : 20
"sex" : "male"
}
]
}
📳Data Transfer
데이터 전송 가능 조건
- 수신자(reciver)와 발신자(sender)가 같은 프로그램을 사용한다.
- 또는, 문자열처럼 범용적으로 읽을 수 있어야 한다.
메시지 객체의 전송 가능하려면 메시지를 보내는 발신자와 메시지를 받는 수신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있는 형태여야 합니다.
❓How to make string type
객체 타입 변환을 이용해 string으로 변환할 경우 객체 내용을 포함하지 않습니다. JavaScript에서 객체를 문자열로 반환하기 위해 메서드(message.toString)나 형 변환(String(message))을 시도한다면 [Object Object]라는 결과를 리턴합니다.
위 문제를 해결하기 위해서는 객체를 json형태로 변환하거나 json을 객체의 형태로 변환하는 방법입니다.
📌Json method
- json.stringify : 객체를 json으로 변환합니다.
- 객체 데이터를 읽을 수 있는 json파일로 만들어주는 stringify 하는 이 과정을 직렬화(serialize)한다고 합니다.
const message = {//객체 메세지
sender: "hello",
receiver: "hello",
message: "Please hire me",
createdAt: "2022-10-21"
}
let transferableMessage = JSON.stringify(message)//객체를 JSON으로 변환
console.log(transferableMessage)
// `{"sender":"hello","receiver":"hello","message":"Please hire me?","createdAt":"2021-01-12 10:10:10"}`
console.log(typeof(transferableMessage))
// `string`
- json.parse : json을 객체로 변환합니다.
- 수신자는 이 문자열 메시지를 다시 객체의 형태로 만들기 위해서는 JSON.parse를 사용해야 한다.
이 과정을 역직렬화(deserialize)한다고 합니다.
- 수신자는 이 문자열 메시지를 다시 객체의 형태로 만들기 위해서는 JSON.parse를 사용해야 한다.
const message = {//객체 메세지
sender: "hello",
receiver: "hello",
message: "Please hire me",
createdAt: "2022-10-21"
}
let transferableMessage = JSON.stringify(message)//객체를 JSON으로 변환
console.log(transferableMessage)
// `{"sender":"hello","receiver":"hello","message":"Please hire me","createdAt":"2021-01-12 10:10:10"}`
console.log(typeof(transferableMessage))
// `string`
let retransferableMessage = JSON.parse(transferableMessage)//문열화 된 데이더 다시 객체로 변환
console.log(retransferableMessage)
/*
{
sender: "hello",
receiver: "hello",
message: "Please hire me",
createdAt: "2022-10-21"
}
*/
console.log(typeof(retransferableMessage))
// `object`
❗JSON의 기본 규칙❗
json은 자바스크립트 객체와 다른 규칙이 존재합니다.
자바스크립트 객체 | JSON | |
키 | 키는 따옴표 없이 쓸 수 있음 { key : "property" } |
반드시 쌍따옴표를 붙여야 함 '{"key":"property"}' |
문자열 값 | 작은따옴표도 사용 가능 { "key" : 'property' } |
반드시 큰따옴표로 감싸야 함 '{"key":"property"}' |
키와 값 사이 공백 | 사용 가능 {"key" : 'property'} |
사용 불가능 '{"key":"property"}' |
키-값 쌍 사이 공백 | 사용 가능 { "key":'property', num:1 } |
사용 불가능 '{"key":"property","num":1}' |
728x90
반응형
'프론트 엔드 > javascript' 카테고리의 다른 글
Promise result값 사용하기 (2) | 2023.01.13 |
---|---|
[JavaScript]재귀 (0) | 2022.10.20 |
[JavaScript]비동기 (Asynchoronous) (0) | 2022.10.02 |
[JavaScript] class의 상속 (0) | 2022.09.25 |
[JavaScript]Prototype & Prototype chain (0) | 2022.09.24 |