JSON
12455 ワード
JSON (JavaScript Object Notation)
1. Object to JSON
stringfy(obj)
let json = JSON.stringify(true);
console.log(json); // true
json = JSON.stringify(['apple', 'banana']);
console.log(json); // ["apple", "banana"]
const rabbit = {
name: 'tori',
color: 'white',
size: null,
birthDate: new Date(),
jump: function () {
console.log(`${this.name} can jump!`);
},
};
json = JSON.stringify(rabbit);
console.log(json);
// {"name":"tori", "color":"white", "size": null, "birthDate" : "2021-01-16T10:33:22.670Z"}
// 함수는 Oject에 있는 데이터가 아니기 때문에 JSON에 포함되지 않는다. 그리고 자바스크립트에만 있는 특별한 데이터도 포함되지 않는다.
json = JSON.stringify(rabbit, ['name', 'color', 'size']);
console.log(json);
// {"name" : "tori", "color" : "white", "size" : null}
json = JSON.stringify(rabbit, (key, value) => {
console.log(`key: ${key}, value: ${value}`);
return key === 'name' ? 'j' : value;
});
console.log(json);
// {"name":"j", "color":"white", "size": null, "birthDate" : "2021-01-16T10:33:22.670Z"}
2. JSON to Object
parse(json)
console.clear();
json = JSON.stringify(rabbit);
console.log(json);
// {"name":"j", "color":"white", "size": null, "birthDate" : "2021-01-16T10:33:22.670Z"}
const obj = JSON.parse(json, (key, value) => {
console.log(`key: ${key}, value: ${value}`);
return key === 'birthDate' ? new Date(value) : value;
});
console.log(obj);
// {name:"j", color:"white", size: null, birthDate : "2021-01-16T10:33:22.670Z"}
rabbit.jump(); // can jump!
// obj.jump(); -> const rabbit이 JSON으로 만들어질때 jump() 함수는 포함되지 않아서 다시 object로 변환하면 없는 것이다.
console.log(rabbit.birthDate.getDate()); // 16
console.log(obj.birthDate.getDate()); // error! rabbit.jump()와 비슷한 케이스
EllyベースDREAM符号化https://www.youtube.com/playlist?list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2
Reference
この問題について(JSON), 我々は、より多くの情報をここで見つけました https://velog.io/@youn9jo/JSONテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol