ë³µì¡í ê°ì²´ë¥¼ ë¤ë£¨ê³ ìë¤ê³ ê°ì í´ ë´ ìë¤. ë¤í¸ìí¬ë¥¼ íµí´ ê°ì²´ë¥¼ ì´ëê°ì ë³´ë´ê±°ë ë¡ê¹ 목ì ì¼ë¡ ê°ì²´ë¥¼ ì¶ë ¥í´ì¼ íë¤ë©´ ê°ì²´ë¥¼ 문ìì´ë¡ ì íí´ì¼ í ê²ëë¤.
ì´ë ì íë 문ìì´ì ìíë ì ë³´ê° ìë ê°ì²´ íë¡í¼í° 모ëê° í¬í¨ëì´ì¼ë§ í©ëë¤.
ìëì ê°ì ë©ìë를 구íí´ ê°ì²´ë¥¼ 문ìì´ë¡ ì íí´ë´ ìë¤.
let user = {
name: "John",
age: 30,
toString() {
return `{name: "${this.name}", age: ${this.age}}`;
}
};
alert(user); // {name: "John", age: 30}
ê·¸ë°ë° ê°ë° ê³¼ì ìì íë¡í¼í°ê° ì¶ê°ëê±°ë ìì , ìì ë ì ììµëë¤. ì´ë ê² ëë©´ ììì 구íí toStringì ë§¤ë² ìì í´ì¼ íëë° ì´ë ì주 ê³ íµì¤ë¬ì´ ìì
ì´ ë ê²ëë¤. íë¡í¼í°ì ë°ë³µë¬¸ì ë리ë ë°©ë²ì ëìì¼ë¡ ì¬ì©í ì ìëë°, ì¤ì²© ê°ì²´ ë±ì¼ë¡ ì¸í´ ê°ì²´ê° ë³µì¡í ê²½ì° ì´ë¥¼ 문ìì´ë¡ ë³ê²½íë ê±´ ê¹ë¤ë¡ì´ ìì
ì´ë¼ ì´ë§ì ë ì½ì§ ìì ê²ëë¤.
ë¤íí ìë°ì¤í¬ë¦½í¸ì ì´ë° 문ì 를 í´ê²°í´ì£¼ë ë°©ë²ì´ ììµëë¤. ê´ë ¨ 기ë¥ì´ ì´ë¯¸ 구íëì´ ìì´ì ì°ë¦¬ê° ì§ì ì½ë를 짤 íìê° ììµëë¤.
JSON.stringify
JSON (JavaScript Object Notation)ì ê°ì´ë ê°ì²´ë¥¼ ëíë´ì£¼ë ë²ì© í¬ë§·ì¼ë¡, RFC 4627 íì¤ì ì ìëì´ ììµëë¤. JSONì 본ë ìë°ì¤í¬ë¦½í¸ìì ì¬ì©í 목ì ì¼ë¡ ë§ë¤ì´ì§ í¬ë§·ì ëë¤. ê·¸ë°ë° ë¼ì´ë¸ë¬ë¦¬ë¥¼ ì¬ì©íë©´ ìë°ì¤í¬ë¦½í¸ê° ìë ì¸ì´ììë JSONì ì¶©ë¶í ë¤ë£° ì ìì´ì, JSONì ë°ì´í° êµí 목ì ì¼ë¡ ì¬ì©íë ê²½ì°ê° ë§ìµëë¤. í¹í í´ë¼ì´ì¸í¸ 측 ì¸ì´ê° ìë°ì¤í¬ë¦½í¸ì¼ ë ë§ì´ì£ . ìë² ì¸¡ ì¸ì´ë 무ìì´ë ìê´ììµëë¤.
ìë°ì¤í¬ë¦½í¸ê° ì ê³µíë JSON ê´ë ¨ ë©ìëë ìëì ê°ìµëë¤.
JSON.stringifyâ ê°ì²´ë¥¼ JSONì¼ë¡ ë°ê¿ì¤ëë¤.JSON.parseâ JSONì ê°ì²´ë¡ ë°ê¿ì¤ëë¤.
ê°ì²´ studentì JSON.stringify를 ì ì©í´ë´
ìë¤.
let student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
wife: null
};
let json = JSON.stringify(student);
alert(typeof json); // 문ìì´ì´ë¤ì!
alert(json);
/* JSONì¼ë¡ ì¸ì½ë©ë ê°ì²´:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"wife": null
}
*/
JSON.stringify(student)를 í¸ì¶íì studentê° ë¬¸ìì´ë¡ ë°ëììµëë¤.
ì´ë ê² ë³ê²½ë 문ìì´ì JSONì¼ë¡ ì¸ì½ë©ë(JSON-encoded), ì§ë ¬í ì²ë¦¬ë(serialized), 문ìì´ë¡ ë³íë(stringified), ê²°ì§ë(marshalled) ê°ì²´ë¼ê³ ë¶ë¦ ëë¤. ê°ì²´ë ì´ë ê² ë¬¸ìì´ë¡ ë³íë íìì¼ ë¹ë¡ì ë¤í¸ìí¬ë¥¼ íµí´ ì ì¡íê±°ë ì ì¥ìì ì ì¥í ì ììµëë¤.
JSONì¼ë¡ ì¸ì½ë©ë ê°ì²´ë ì¼ë° ê°ì²´ì ë¤ë¥¸ í¹ì§ì ë³´ì ëë¤.
- 문ìì´ì í°ë°ì´íë¡ ê°ì¸ì¼ í©ëë¤. JSONìì ììë°ì´íë ë°±í±ì ì¬ì©í ì ììµëë¤(
'John'ì´"John"ì¼ë¡ ë³ê²½ë ê²ì íµí´ ì´ë¥¼ íì¸í ì ììµëë¤). - ê°ì²´ íë¡í¼í° ì´ë¦ì í°ë°ì´íë¡ ê°ì¸ì¼ í©ëë¤(
age:30ì´"age":30ì¼ë¡ ë³í ê²ì íµí´ ì´ë¥¼ íì¸í ì ììµëë¤).
JSON.stringifyë ê°ì²´ë¿ë§ ìëë¼ ììê°ìë ì ì©í ì ììµëë¤.
ì ì©í ì ìë ìë£íì ìëì ê°ìµëë¤.
- ê°ì²´
{ ... } - ë°°ì´
[ ... ] - ììí:
- 문ìí
- ì«ìí
- ë¶ë¦°í ê°
trueìfalse null
ìì:
// ì«ì를 JSONì¼ë¡ ì¸ì½ë©íë©´ ì«ìì
ëë¤.
alert( JSON.stringify(1) ) // 1
// 문ìì´ì JSONì¼ë¡ ì¸ì½ë©íë©´ 문ìì´ì
ëë¤(ë¤ë§, í°ë°ì´íê° ì¶ê°ë©ëë¤).
alert( JSON.stringify('test') ) // "test"
alert( JSON.stringify(true) ); // true
alert( JSON.stringify([1, 2, 3]) ); // [1,2,3]
JSONì ë°ì´í° êµíì 목ì ì¼ë¡ ë§ë¤ì´ì§ ì¸ì´ì ì¢
ìëì§ ìë í¬ë§·ì
ëë¤. ë°ë¼ì ìë°ì¤í¬ë¦½í¸ í¹ì ì ê°ì²´ íë¡í¼í°ë JSON.stringifyê° ì²ë¦¬í ì ììµëë¤.
JSON.stringify í¸ì¶ ì 무ìëë íë¡í¼í°ë ìëì ê°ìµëë¤.
- í¨ì íë¡í¼í° (ë©ìë)
- ì¬ë³¼í íë¡í¼í° (í¤ê° ì¬ë³¼ì¸ íë¡í¼í°)
- ê°ì´
undefinedì¸ íë¡í¼í°
let user = {
sayHi() { // 무ì
alert("Hello");
},
[Symbol("id")]: 123, // 무ì
something: undefined // 무ì
};
alert( JSON.stringify(user) ); // {} (ë¹ ê°ì²´ê° ì¶ë ¥ë¨)
ëê° ì´ íë¡í¼í°ë¤ì 무ì ëì´ë ê´ì°®ìµëë¤. ê·¸ë°ë° ì´ë¤ë 문ìì´ì í¬í¨ìì¼ì¼ íë ê²½ì°ê° ì기곤 íëë° ì´ì ëí´ì ìëìì ë¤ë£¨ëë¡ íê² ìµëë¤.
JSON.stringifyì ì¥ì ì¤ íëë ì¤ì²© ê°ì²´ë ììì 문ìì´ë¡ ë°ê¿ì¤ë¤ë ì ì
ëë¤.
ìì:
let meetup = {
title: "Conference",
room: {
number: 23,
participants: ["john", "ann"]
}
};
alert( JSON.stringify(meetup) );
/* ê°ì²´ ì ì²´ê° ë¬¸ìì´ë¡ ë³íëììµëë¤.
{
"title":"Conference",
"room":{"number":23,"participants":["john","ann"]},
}
*/
JSON.stringify를 ì¬ì©í ë 주ìíì
ì¼ í ì ì´ íë ììµëë¤. ìí ì°¸ì¡°ê° ìì¼ë©´ ìíë ëë¡ ê°ì²´ë¥¼ 문ìì´ë¡ ë°ê¾¸ë ê² ë¶ê°ë¥í©ëë¤.
ìì:
let room = {
number: 23
};
let meetup = {
title: "Conference",
participants: ["john", "ann"]
};
meetup.place = room; // meetupì roomì 참조í©ëë¤.
room.occupiedBy = meetup; // roomì meetupì 참조í©ëë¤.
JSON.stringify(meetup); // Error: Converting circular structure to JSON
room.occupiedByë meetupì, meetup.placeë roomì 참조í기 ë문ì JSONì¼ë¡ì ë³íì´ ì¤í¨íìµëë¤.
replacerë¡ ìíë íë¡í¼í°ë§ ì§ë ¬íí기
JSON.stringifyì ì ì²´ 문ë²ì ìëì ê°ìµëë¤.
let json = JSON.stringify(value, [replacer, space])
- value
- ì¸ì½ë© íë ¤ë ê°
- replacer
- JSONì¼ë¡ ì¸ì½ë© í길 ìíë íë¡í¼í°ê° ë´ê¸´ ë°°ì´. ëë 매í í¨ì
function(key, value) - space
- ìì ë³ê²½ 목ì ì¼ë¡ ì¬ì©í 공백 문ì ì
ëë¤ìì ê²½ì° JSON.stringifyì ì¸ì를 íëë§ ë겨ì ì¬ì©í©ëë¤. ê·¸ë°ë° ìí 참조를 ë¤ë¤ì¼ íë ê²½ì°ê°ì´ ì í íë¡ì¸ì¤ë¥¼ ì êµíê² ì¡°ì íë ¤ë©´ ë ë²ì§¸ ì¸ì를 ì¬ì©í´ì¼ í©ëë¤.
JSONì¼ë¡ ë³íí길 ìíë íë¡í¼í°ê° ë´ê¸´ ë°°ì´ì ë ë²ì§¸ ì¸ìë¡ ë겨주면 ì´ íë¡í¼í°ë¤ë§ ì¸ì½ë©í ì ììµëë¤.
ìì:
let room = {
number: 23
};
let meetup = {
title: "Conference",
participants: [{name: "John"}, {name: "Alice"}],
place: room // meetupì roomì 참조í©ëë¤.
};
room.occupiedBy = meetup; // room references meetup
alert( JSON.stringify(meetup, ['title', 'participants']) );
// {"title":"Conference","participants":[{},{}]}
ë°°ì´ì ë£ì´ì¤ íë¡í¼í°ê° ì ì¶ë ¥ë ê²ì íì¸í ì ììµëë¤. ê·¸ë°ë° ë°°ì´ì nameì ë£ì§ ììì ì¶ë ¥ë 문ìì´ì participantsê° í
ë¹ì´ë²ë ¸ë¤ì. ê·ì¹ì´ ë무 ê¹ë¤ë¡ìì ë°ìí 문ì ì
ëë¤.
ìí 참조를 ë°ììí¤ë íë¡í¼í° room.occupiedByë§ ì ì¸íê³ ëª¨ë íë¡í¼í°ë¥¼ ë°°ì´ì ë£ì´ë´
ìë¤.
let room = {
number: 23
};
let meetup = {
title: "Conference",
participants: [{name: "John"}, {name: "Alice"}],
place: room // meetup references room
};
room.occupiedBy = meetup; // room references meetup
alert( JSON.stringify(meetup, ['title', 'participants', 'place', 'name', 'number']) );
/*
{
"title":"Conference",
"participants":[{"name":"John"},{"name":"Alice"}],
"place":{"number":23}
}
*/
occupiedBy를 ì ì¸í 모ë íë¡í¼í°ê° ì§ë ¬íëììµëë¤. ê·¸ë°ë° ë°°ì´ì´ ì¢ ê¸¸ë¤ë ëëì´ ëëë¤.
replacer ì리ì ë°°ì´ ëì í¨ì를 ì ë¬í´ ì´ ë¬¸ì 를 í´ê²°í´ ë´
ìë¤(매ê°ë³ì replacerë 'ëì íë¤âë¼ë ë»ì ê°ì§ ìë¨ì´ replaceìì ê·¸ ì´ë¦ì´ ììµëë¤ â ì®ê¸´ì´).
replacerì ì ë¬ëë í¨ì(replacer í¨ì)ë íë¡í¼í° (í¤, ê°) ì ì 체를 ëìì¼ë¡ í¸ì¶ëëë°, ë°ëì 기존 íë¡í¼í° ê°ì ëì íì¬ ì¬ì©í ê°ì ë°íí´ì¼ í©ëë¤. í¹ì íë¡í¼í°ë¥¼ ì§ë ¬íìì ëë½ìí¤ë ¤ë©´ ë°í ê°ì undefinedë¡ ë§ë¤ë©´ ë©ëë¤.
ìë ììë occupiedBy를 ì ì¸í 모ë íë¡í¼í°ì ê°ì ë³ê²½ ìì´ âê·¸ëë¡â ì§ë ¬ííê³ ììµëë¤. occupiedByë undefined를 ë°ííê² í´ ì§ë ¬íì í¬í¨íì§ ìì ê²ë íì¸í´ ë³´ì길 ë°ëëë¤.
let room = {
number: 23
};
let meetup = {
title: "Conference",
participants: [{name: "John"}, {name: "Alice"}],
place: room // meetupì roomì 참조í©ëë¤
};
room.occupiedBy = meetup; // roomì meetupì 참조í©ëë¤
alert( JSON.stringify(meetup, function replacer(key, value) {
alert(`${key}: ${value}`);
return (key == 'occupiedBy') ? undefined : value;
}));
/* replacer í¨ììì ì²ë¦¬íë í¤:ê° ì 목ë¡
: [object Object]
title: Conference
participants: [object Object],[object Object]
0: [object Object]
name: John
1: [object Object]
name: Alice
place: [object Object]
number: 23
*/
replacer í¨ìê° ì¤ì²© ê°ì²´ì ë°°ì´ì ììê¹ì§ í¬í¨í 모ë í¤-ê° ìì ì²ë¦¬íê³ ìë¤ë ì ì 주목í´ì£¼ì기 ë°ëëë¤. replacer í¨ìë ì¬ê·ì ì¼ë¡ í¤-ê° ìì ì²ë¦¬íëë°, í¨ì ë´ìì thisë íì¬ ì²ë¦¬íê³ ìë íë¡í¼í°ê° ìì¹í ê°ì²´ë¥¼ ê°ë¦¬íµëë¤.
첫 ì¼ë¿ì°½ì ììì¹ ëª»í 문ìì´(":[object Object]")ì´ ë¨ë걸 ë³¼ ì ìëë°, ì´ë í¨ìê° ìµì´ë¡ í¸ì¶ë ë {"": meetup} ííì "ëí¼ ê°ì²´"ê° ë§ë¤ì´ì§ê¸° ë문ì
ëë¤. replacerí¨ìê° ê°ì¥ ì²ìì¼ë¡ ì²ë¦¬í´ì¼íë (key, value) ììì í¤ë ë¹ ë¬¸ìì´, ê°ì ë³ííê³ ì íë ê°ì²´(meetup) ì ì²´ê° ëë ê²ì´ì£ .
ì´ë ê² replacer í¨ì를 ì¬ì©íë©´ ì¤ì²© ê°ì²´ ë±ì í¬í¨í ê°ì²´ ì ì²´ìì ìíë íë¡í¼í°ë§ ì íí´ ì§ë ¬í í ì ììµëë¤.
spaceë¡ ê°ë ì± ëì´ê¸°
JSON.stringify(value, replacer, space)ì ì¸ ë²ì§¸ ì¸ì spaceë ê°ë
ì±ì ëì´ê¸° ìí´ ì¤ê°ì ì½ì
í´ ì¤ ê³µë°± 문ì ì를 ëíë
ëë¤.
ì§ê¸ê¹ì§ space ìì´ ë©ìë를 í¸ì¶í기 ë문ì ì¸ì½ë©ë JSONì ë¤ì¬ì°ê¸°ë ì¬ë¶ì 공백문ìê° íëë ìììµëë¤. spaceë ê°ë
ì±ì ëì´ê¸° ìí ì©ëë¡ ë§ë¤ì´ì¡ê¸° ë문ì ë¨ì ì ë¬ ëª©ì ì´ë¼ë©´ space ìì´ ì§ë ¬ííë í¸ì
ëë¤.
ìë ììì²ë¼ spaceì 2를 ë겨주면 ìë°ì¤í¬ë¦½í¸ë ì¤ì²© ê°ì²´ë¥¼ ë³ëì ì¤ì ì¶ë ¥í´ì£¼ê³ 공백 문ì ë ê°ë¥¼ ì¨ ë¤ì¬ì°ê¸°í´ ì¤ëë¤.
let user = {
name: "John",
age: 25,
roles: {
isAdmin: false,
isEditor: true
}
};
alert(JSON.stringify(user, null, 2));
/* 공백 문ì ë ê°ë¥¼ ì¬ì©íì¬ ë¤ì¬ì°ê¸°í¨:
{
"name": "John",
"age": 25,
"roles": {
"isAdmin": false,
"isEditor": true
}
}
*/
/* JSON.stringify(user, null, 4)ë¼ë©´ ìëì ê°ì´ ì¢ ë ë¤ì¬ì¨ì§ëë¤.
{
"name": "John",
"age": 25,
"roles": {
"isAdmin": false,
"isEditor": true
}
}
*/
ì´ì²ë¼ 매ê°ë³ì spaceë ë¡ê¹
ì´ë ê°ë
ì±ì ëì´ë 목ì ì¼ë¡ ì¬ì©ë©ëë¤.
커ì¤í âtoJSONâ
toStringì ì¬ì©í´ ê°ì²´ë¥¼ 문ìíì¼ë¡ ë³íìí¤ë ê²ì²ë¼, ê°ì²´ì toJSONì´ë¼ë ë©ìëê° êµ¬íëì´ ìì¼ë©´ ê°ì²´ë¥¼ JSONì¼ë¡ ë°ê¿ ì ìì ê²ëë¤. JSON.stringifyë ì´ë° ê²½ì°ë¥¼ ê°ì§íê³ toJSONì ìëì¼ë¡ í¸ì¶í´ì¤ëë¤.
ìì:
let room = {
number: 23
};
let meetup = {
title: "Conference",
date: new Date(Date.UTC(2017, 0, 1)),
room
};
alert( JSON.stringify(meetup) );
/*
{
"title":"Conference",
"date":"2017-01-01T00:00:00.000Z", // (1)
"room": {"number":23} // (2)
}
*/
Date ê°ì²´ì ë´ì¥ ë©ìë toJSONì´ í¸ì¶ëë©´ì dateì ê°ì´ 문ìì´ë¡ ë³íë 걸 íì¸í ì ììµëë¤((1)).
ì´ë²ì roomì ì§ì 커ì¤í
ë©ìë toJSONì ì¶ê°í´ ë´
ìë¤. ê·¸ë¦¬ê³ (2)ë¡ íìí ì¤ì´ ì´ë»ê² ë³ê²½ëëì§ íì¸í´ ë´
ìë¤.
let room = {
number: 23,
toJSON() {
return this.number;
}
};
let meetup = {
title: "Conference",
room
};
alert( JSON.stringify(room) ); // 23
alert( JSON.stringify(meetup) );
/*
{
"title":"Conference",
"room": 23
}
*/
ìì ê°ì´ toJSONì JSON.stringify(room)를 ì§ì í¸ì¶í ëë ì¬ì©í ì ìê³ , roomê³¼ ê°ì ì¤ì²©ê°ì²´ìë 구ííì¬ ì¬ì©í ì ììµëë¤.
JSON.parse
JSON.parse를 ì¬ì©íë©´ JSONì¼ë¡ ì¸ì½ë©ë ê°ì²´ë¥¼ ë¤ì ê°ì²´ë¡ ëì½ë© í ì ììµëë¤.
문ë²:
let value = JSON.parse(str, [reviver]);
- str
- JSON íìì 문ìì´
- reviver
- 모ë
(key, value)ìì ëìì¼ë¡ í¸ì¶ëë function(key,value) ííì í¨ìë¡ ê°ì ë³ê²½ìí¬ ì ììµëë¤.
ìì:
// 문ìì´ë¡ ë³íë ë°°ì´
let numbers = "[0, 1, 2, 3]";
numbers = JSON.parse(numbers);
alert( numbers[1] ); // 1
JSON.parseë ìëì ê°ì´ ì¤ì²© ê°ì²´ìë ì¬ì©í ì ììµëë¤.
let userData = '{ "name": "John", "age": 35, "isAdmin": false, "friends": [0,1,2,3] }';
let user = JSON.parse(userData);
alert( user.friends[1] ); // 1
ì¤ì²© ê°ì²´ë ì¤ì³¡ ë°°ì´ì´ ìë¤ë©´ JSONë ë³µì¡í´ì§ê¸° ë§ë ¨ì¸ë°, ê·¸ë ëë¼ë ê²°êµì JSON í¬ë§· ì§ì¼ì¼ í©ëë¤.
ìëìì ëë²ê¹ ë±ì 목ì ì¼ë¡ ì§ì JSONì ë§ë¤ ë íí ì ì§ë¥´ë ì¤ì ëª ê°ë¥¼ ê°ì¶ë ¤ë³´ììµëë¤. ì°¸ê³ íìì´ ì´ì ê°ì ì¤ì를 ì ì§ë¥´ì§ ìì¼ì길 ë°ëëë¤.
let json = `{
name: "John", // ì¤ì 1: íë¡í¼í° ì´ë¦ì í°ë°ì´íë¡ ê°ì¸ì§ ìììµëë¤.
"surname": 'Smith', // ì¤ì 2: íë¡í¼í° ê°ì í°ë°ì´íë¡ ê°ì¸ì¼ íëë°, ììë°ì´íë¡ ê°ììµëë¤.
'isAdmin': false // ì¤ì 3: íë¡í¼í° í¤ë í°ë°ì´íë¡ ê°ì¸ì¼ íëë°, ììë°ì´íë¡ ê°ììµëë¤.
"birthday": new Date(2000, 2, 3), // ì¤ì 4: "new"를 ì¬ì©í ì ììµëë¤. ììí ê°(bare value)ë§ ì¬ì©í ì ììµëë¤.
"friends": [0,1,2,3] // ì´ íë¡í¼í°ë ê´ì°®ìµëë¤.
}`;
JSONì 주ìì ì§ìíì§ ìëë¤ë ì ë 기ìµí´ ëì¼ì기 ë°ëëë¤. 주ìì ì¶ê°íë©´ ì í¨íì§ ìì íìì´ ë©ëë¤.
í¤ë¥¼ í°ë°ì´íë¡ ê°ì¸ì§ ììë ëê³ ì£¼ìë ì§ìí´ì£¼ë JSON5ë¼ë í¬ë§·ë ìëë°, ì´ í¬ë§·ì ìë°ì¤í¬ë¦½í¸ ëª ì¸ììì ì ìíì§ ìì ë ìì ì¸ ë¼ì´ë¸ë¬ë¦¬ì ëë¤.
JSON í¬ë§·ì´ ê¹ë¤ë¡ì´ ê·ì¹ì ê°ì§ê² ë ì´ì ë ê°ë°ìì ê·ì°¨ëì¦ ëë¬¸ì´ ìëê³ , ì½ê³ ë¹ ë¥´ë©° ì 뢰í ì ìì ë§í íì± ìê³ ë¦¬ì¦ì 구íí기 ìí´ìì ëë¤.
reviver ì¬ì©í기
ìë²ë¡ë¶í° 문ìì´ë¡ ë³íë meetup ê°ì²´ë¥¼ ì ì¡ë°ìë¤ê³ ê°ì í´ë´
ìë¤.
ì ì¡ë°ì 문ìì´ì ìë§ ìëì ê°ì´ìê²¼ìê²ëë¤.
// title: (meetup ì 목), date: (meetup ì¼ì)
let str = '{"title":"Conference","date":"2017-11-30T12:00:00.000Z"}';
ì´ì ì´ ë¬¸ìì´ì ì ì§ë ¬í(deserialize) í´ì ìë°ì¤í¬ë¦½í¸ ê°ì²´ë¥¼ ë§ë¤ì´ë´ ìë¤.
JSON.parse를 í¸ì¶í´ë³´ì£ .
let str = '{"title":"Conference","date":"2017-11-30T12:00:00.000Z"}';
let meetup = JSON.parse(str);
alert( meetup.date.getDate() ); // ìë¬!
ì! ìë¬ê° ë°ìíë¤ì!
meetup.dateì ê°ì Date ê°ì²´ê° ìëê³ ë¬¸ìì´ì´ê¸° ë문ì ë°ìí ìë¬ì
ëë¤. ê·¸ë ë¤ë©´ 문ìì´ì Dateë¡ ì íí´ì¤ì¼ íë¤ë 걸 ì´ë»ê² JSON.parseìê² ì릴 ì ììê¹ì?
ì´ë´ ë JSON.parseì ë ë²ì§¸ ì¸ì reviver를 ì¬ì©íë©´ ë©ëë¤. 모ë ê°ì âê·¸ëë¡â, íì§ë§ dateë§í¼ì Date ê°ì²´ë¥¼ ë°ííëë¡ í¨ì를 구íí´ ë´
ìë¤.
let str = '{"title":"Conference","date":"2017-11-30T12:00:00.000Z"}';
let meetup = JSON.parse(str, function(key, value) {
if (key == 'date') return new Date(value);
return value;
});
alert( meetup.date.getDate() ); // ì´ì ì ëë¡ ëìíë¤ì!
ì°¸ê³ ë¡ ì´ ë°©ìì ì¤ì²© ê°ì²´ìë ì ì©í ì ììµëë¤.
let schedule = `{
"meetups": [
{"title":"Conference","date":"2017-11-30T12:00:00.000Z"},
{"title":"Birthday","date":"2017-04-18T12:00:00.000Z"}
]
}`;
schedule = JSON.parse(schedule, function(key, value) {
if (key == 'date') return new Date(value);
return value;
});
alert( schedule.meetups[1].date.getDate() ); // ì ëìí©ëë¤!
ìì½
- JSONì ë ìì ì¸ íì¤ì ê°ì§ ë°ì´í° íìì¼ë¡, ëë¶ë¶ì ì¸ì´ì JSONì ì½ê² ë¤ë£° ì ìê² í´ì£¼ë ë¼ì´ë¸ë¬ë¦¬ê° ììµëë¤.
- JSONì ì¼ë° ê°ì²´, ë°°ì´, 문ìì´, ì«ì, ë¶ë¦°ê°,
nullì ì§ìí©ëë¤. - JSON.stringify를 ì¬ì©íë©´ ìíë ê°ì JSONì¼ë¡ ì§ë ¬í í ì ìê³ , JSON.parse를 ì¬ì©íë©´ JSONì 본ë ê°ì¼ë¡ ì ì§ë ¬í í ì ììµëë¤.
- ì ë ë©ìëì í¨ì를 ì¸ìë¡ ë겨주면 ìíë ê°ë§ ì½ê±°ë ì°ë ê² ê°ë¥í©ëë¤.
JSON.stringifyë ê°ì²´ìtoJSONë©ìëê° ìì¼ë©´ ì´ë¥¼ ìëì¼ë¡ í¸ì¶í´ì¤ëë¤.
ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.