자바스크립트에서 Xml을 대체하는 데이터 포맷
// 1. Object to Json(string)
//stringfy(obj)
// obj가 boolean일경우
let json = JSON.stringify(true);
console.log(json);
//true
// obj가 obj일경우
const rabbit = {
name: 'tori',
color: 'white',
size: null,
birthDate: new Date(),
jump: () => {
console.log(`${this.name} can jump!`);
},
};
json = JSON.stringify(rabbit);
console.log(json);
//{"name":"tori","color":"white","size":null,"birthDate":"2021-08-31T02:50:41.780Z"}
// 함수는 출력되지않는다.
// 모든 언어에서 공통적으로 쓰이는것이기때문에 자바스크립트에서 쓰이는 symbol같은 것도 되지않는다.
json = JSON.stringify(rabbit, ['name', 'color']);
console.log(json);
//{"name":"tori","color":"white"}
//callback함수
//콜백함수
json = JSON.stringify(rabbit, (key, value) => {
console.log(`key: ${key}, value: ${value}`);
return value;
});
console.log(json);
/*
key: , value: [object Object]
key: name, value: tori
key: color, value: white
size, value: null
key: birthDate, value: 2021-08-31T03:08:21.021Z
key: jump, value: () => {
console.log(`${this.name} can jump!`);
}
{"name":"tori","color":"white","size":null,"birthDate":"2021-08-31T03:08:21.021Z"}
*/
json = JSON.stringify(rabbit, (key, value) => {
console.log(`key: ${key}, value: ${value}`);
return key === 'name' ? 'chan' : value;
});
console.log(json);
/*
key: , value: [object Object]
key: name, value: tori
key: color, value: white
size, value: null
key: birthDate, value: 2021-08-31T03:08:21.021Z
key: jump, value: () => {
console.log(`${this.name} can jump!`);
}
{"name":"chan","color":"white","size":null,"birthDate":"2021-08-31T03:08:21.021Z"}
*/
//2.JSON to Object
//parse(json)
console.clear();
json = JSON.stringify(rabbit);
const obj = JSON.parse(json);
console.log(obj);
//{name: "tori", color: "white", size: null, birthDate: "2021-08-31T03:14:01.163Z"}
rabbit.jump();
//can jump!
//obj.jump();
// json.js:78 Uncaught TypeError: obj.jump is not a function
// rabbit(obj)가 json(string)으로 변환될때 jump(함수)는 포함되지않았기때문이다.
console.log(rabbit.birthDate.getDate());
//31
//console.log(obj.birthDate.getDate());
//Uncaught TypeError: obj.birthDate.getDate is not a function
// rabbit(obj)의 birthDate는 date형식이지만
// json(string)으로 변환되면서 string형식이 된다.
// 이 string형식을 obj화 시켜도(obj) 원래 데이터를 string으로 인식하기때문에
// string obj로 인식한다.
Javascript
👉 pinia기본
2023.05.05
👉 github pages에서 vue router 404 에러
2023.04.03
👉 object의 변수인 경우 ref와 reactive 어느 것을 사용할까
2023.04.02
👉 Route
2023.04.01
👉 Template ref
2023.03.26
👉 provide와 inject
2023.03.25
👉 slots
2023.03.24
👉 nonProps
2023.03.23
👉 v-model을 통한 3depth 양방향 바인딩
2023.03.22
👉 emit, component와 v-model을 통한 양방향 바인딩
2023.03.21
👉 props
2023.03.20
👉 watch
2023.03.19
👉 양방향 바인딩
2023.03.18
👉 event Parameter
2023.03.17
👉 Scope와 Closure
2023.03.17
👉 classStyleBinding
2023.03.16
👉 computed
2023.03.15
👉 Ref와 Reactive
2023.03.14
👉 notion page를 웹사이트에 삽입하기
2022.01.25
👉 Json
2021.04.16
👉 Javascript 배열
2021.04.15
👉 Javascript 객체
2021.04.14
👉 Javascript 클래스
2021.04.13
👉 Javascript 함수
2021.04.12
👉 Javascript 변수심화
2021.04.11
👉 Javascript 변수
2021.04.10
Frontend
👉 pinia기본
2023.05.05
👉 github pages에서 vue router 404 에러
2023.04.03
👉 object의 변수인 경우 ref와 reactive 어느 것을 사용할까
2023.04.02
👉 Route
2023.04.01
👉 Template ref
2023.03.26
👉 provide와 inject
2023.03.25
👉 slots
2023.03.24
👉 nonProps
2023.03.23
👉 v-model을 통한 3depth 양방향 바인딩
2023.03.22
👉 emit, component와 v-model을 통한 양방향 바인딩
2023.03.21
👉 props
2023.03.20
👉 watch
2023.03.19
👉 양방향 바인딩
2023.03.18
👉 event Parameter
2023.03.17
👉 Scope와 Closure
2023.03.17
👉 classStyleBinding
2023.03.16
👉 computed
2023.03.15
👉 Ref와 Reactive
2023.03.14
👉 notion page를 웹사이트에 삽입하기
2022.01.25
👉 간단한 반응형 메뉴갖는 웹 만들기
2021.08.04
👉 Json
2021.04.16
👉 Javascript 배열
2021.04.15
👉 Javascript 객체
2021.04.14
👉 Javascript 클래스
2021.04.13
👉 Javascript 함수
2021.04.12
👉 Javascript 변수심화
2021.04.11
👉 Javascript 변수
2021.04.10
👉 CSS Centering
2021.04.09
👉 CSS flexbox
2021.04.08
👉 CSS 변수
2021.04.07
👉 CSS Size
2021.04.06
👉 CSS layout
2021.04.05
👉 CSS 기본
2021.04.04
👉 HTML5 Data 속성
2021.04.03
👉 HTML의 다양한 태그
2021.04.02
👉 Visual studio code의 유용한 툴
2021.04.01
👉 HTML 기초
2021.04.01
댓글 쓰기