
코드스테이즈 41기 교육 내용을 정리하고 있습니다.
틀린 부분이 있으면 댓글로 알려주시면 감사하겠습니다.
Json
만약 사용자가 object를 toString을 통해 강제로 string형태로 바꿔저장한다고 가정하자.
이때 object는 정상적으로 string형태로 변환되었을까? 결론부터 말하면 그렇지 않다.
어떻게 해결해야할까?
//객체 생성!
const user = {
id: "leewang31",
pw: 1234,
createdAt: "2021-01-12 10:10:10"
}
console.log(user) //{id: 'leewang31', pw: 1234, createdAt: '2021-01-12 10:10:10'}
console.log(user.toString()) //[object Object]
user을 toString()이 아닌 JSON을 활용하면 우리가 원하던 string 형태의 object를 얻을수 있다.
이때는 JSON.stringify(obj)형태로 사용하고,
이와 반대로 JSON형태의 데이터를 object형태로 변환 하려면 JSON.parse(data)로 사용하면 된다.
let jsonUser = JSON.stringify(user)
console.log(jsonUser) //{"id":"leewang31","pw":1234,"createdAt":"2021-01-12 10:10:10"}
let parseJson = JSON.parse(jsonUser)
console.log(parseJson) // {id: 'leewang31', pw: 1234, createdAt: '2021-01-12 10:10:10'}
console.log(typeof(jsonUser)) //string
console.log(typeof(parseJson)) //object
- JSON.stringify : 객체를 JSON으로 변환합니다.
- JSON.parse : JSON을 객체로 변환합니다.
stringify하는 과정을 직렬화라고 한다
- 직렬화는 시스템 내부에서 사용되는 obj나 data의 형태를 외부에서 사용할 수 있는 byte 형태로 변환하는 기술이다
반대로 JSON.parse는 역직렬화이다
JSON의 규칙
| 키 | 키는 따옴표 없이 쓸 수 있음 { key : "property" } |
반드시 쌍따옴표를 붙여야 함 '{"key":"property"}' |
| 문자열 값 | 작은따옴표도 사용 가능 { "key" : 'property' } |
반드시 큰따옴표로 감싸야 함 '{"key":"property"}' |
| 키와 값 사이 공백 | 사용 가능 {"key" : 'property'} |
사용 불가능 '{"key":"property"}' |
| 키-값 쌍 사이 공백 | 사용 가능 { "key":'property', num:1 } |
사용 불가능 '{"key":"property","num":1}' |
'프론트엔드 > Codestates' 카테고리의 다른 글
| [사용자 친화 웹] UI/UX - 2 (0) | 2022.10.24 |
|---|---|
| [사용자 친화 웹] UI/UX - 1 (0) | 2022.10.24 |
| [알고리즘] 재귀 (0) | 2022.10.20 |
| [React] React데이터 흐름 (0) | 2022.10.11 |
| [HTTP/네트워크] REST API (2) | 2022.10.07 |