JSON (JavaScript Object Notation)
๊ฐ์ด๋ ๊ฐ์ฒด๋ฅผ ๋ํ๋ด์ฃผ๋ ๋ฒ์ฉ ํฌ๋งท์ผ๋ก js์์ ์ฌ์ฉํ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ง ํฌ๋งท์ด๋ ํ์ฌ ๋ค๋ฅธ ์ธ์ด์์๋ json์ ๋ง์ด ์ด์ฉํ๊ณ ์๋ค.
JSON ํฌ๋งท
ํ๋กํผํฐ ์ด๋ฆ(key)๊ณผ ๊ฐ(value)๋ ํฐ๋ฐ์ดํ๋ก ๊ฐ์ธ์ผํ๋ค. (์์ ๋ฐ์ดํ x)
new๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ด๋ จ ๋งค์๋
JSON.stringify(obj) : ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ๋ณํ
ํจ์ ํ๋ผ๋ฏธํฐ
let json = JSON.stringify(value[, replacer, space])
value : ์ธ์ฝ๋ฉ ํ๋ ค๋ ๊ฐ
let student = { name: 'John', age: 30, isAdmin: false, courses: ['html', 'css', 'js'], wife: null, }; let json = JSON.stringify(student); alert(typeof json); // string alert(json); /* JSON์ผ๋ก ์ธ์ฝ๋ฉ๋ ๊ฐ์ฒด: { "name": "John", "age": 30, "isAdmin": false, "courses": ["html", "css", "js"], "wife": null } */
replacer : ์ธ์ฝ๋ฉ ํ๊ธธ ์ํ๋ ํ๋กํผํฐ๊ฐ ๋ด๊ธด ๋ฐฐ์ด or ๋งคํ ํจ์
์ํ ์ฐธ์กฐ๋ฅผ ๋ค๋ค์ผ ํ๋ ๊ฒฝ์ฐ์ ์ ๊ตํ๊ฒ ์กฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ
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; }) ); alert(JSON.stringify(meetup, ['title', 'participants', 'place', 'name', 'number']));
space : ์์ ๋ณ๊ฒฝ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ ๊ณต๋ฐฑ ๋ฌธ์ ์
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 } } */ alert(JSON.stringify(user, null, 4)); /* { "name": "John", "age": 25, "roles": { "isAdmin": false, "isEditor": true } } */
๋ณํ๋ string์ JSON์ผ๋ก
์ธ์ฝ๋ฉ๋
|์ง๋ ฌํ ์ฒ๋ฆฌ๋
|๋ฌธ์์ด๋ก ๋ณํ๋
|๊ฒฐ์ง๋
๊ฐ์ฒด๋ผ๊ณ ๋ถ๋ฅธ๋ค.๊ฐ์ฒด, ๋ฐฐ์ด, ์์์๋ฃํ๋ ์ ์ฉํ ์ ์๋ค.
๋ฉ์๋, key๊ฐ ์ฌ๋ณผํ ํ๋กํผํฐ, ๊ฐ์ด undefiend์ธ ํ๋กํผํฐ๋ ๋ฌด์ํ๋ค.
๊ฐ์ฒด๊ฐ ์ํ ์ฐธ์กฐ๊ฐ ์๋ค๋ฉด ๋ณํ์ ์คํจํ๋ค. (Error)
toJSON() : ๊ฐ์ฒด ๋ด๋ถ์ ํจ์๊ฐ ์ ์ ๋์ด ์์ผ๋ฉด
JSON.stringify()
ํจ์ ํธ์ถ์toJSON()
์ด ํธ์ถ ๋๋ค.JSON.parse : JSON์ ๊ฐ์ฒด๋ก ๋ณํ
ํจ์ ํ๋ผ๋ฏธํฐ
let value = JSON.parse(str, [reviver]);
str : JSONํ์์ ๋ฌธ์์ด
reviver : ๋ชจ๋ (key,value) ์์ ๋์์ผ๋ก ํธ์ถ๋๋ function(key,value)ํํ์ ํจ์๋ก ๊ฐ์ ๋ณ๊ฒฝ์ํฌ ์ ์๋ค.
์๋์ ๊ฐ์ด date๋ฅผ ๊ทธ๋๋ก parse์ด์ฉํด ๊ฐ์ฒด๋ก ๋ณํ์ date์ ๋ณด๋ฅผ Date ๊ฐ์ฒด๊ฐ ์๋ ๋ฌธ์์ด๋ก ๋ฐ์๊ธฐ ๋๋ฌธ์
meetup.date.getDate()
์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.๋ฐ๋ผ์ ์๋์ ๊ฐ์ด
reviver
๋ฅผ ์ด์ฉํด ๊ฐ์ฒด๋ก ๋ณํ์์ผ์ค ์ ์๋ค.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());
Last updated