JSON
JSON(JavaScript Object Notation)์ ์์ฑ-๊ฐ ์( attribute–value pairs and array data types (or any other serializable value)) ๋๋ "ํค-๊ฐ ์"์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ์ค๋ธ์ ํธ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ธ๊ฐ์ด ์ฝ์ ์ ์๋ ํ ์คํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐฉํ ํ์ค ํฌ๋งท์ด๋ค.
๋น๋๊ธฐ ๋ธ๋ผ์ฐ์ /์๋ฒ ํต์ (AJAX)์ ์ํด, ๋๊ฒ๋ XML(AJAX๊ฐ ์ฌ์ฉ)์ ๋์ฒดํ๋ ์ฃผ์ ๋ฐ์ดํฐ ํฌ๋งท์ด๋ค. ํนํ, ์ธํฐ๋ท์์ ์๋ฃ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ๊ทธ ์๋ฃ๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์๋ ค์ ธ ์๋ค.
SON์ ๊ณต์ ์ธํฐ๋ท ๋ฏธ๋์ด ํ์ ์ application/json์ด๋ฉฐ, JSON์ ํ์ผ ํ์ฅ์๋ .json์ด๋ค.
์๋ฃํ
- ์(Number)
- ๋ฌธ์์ด(String): 0๊ฐ ์ด์์ ์ ๋์ฝ๋ ๋ฌธ์๋ค์ ์ฐ์. ๋ฌธ์์ด์ ํฐ ๋ฐ์ดํ(")๋ก ๊ตฌ๋ถํ๋ฉฐ ์ญ์ฌ๋์ ์ด์ค์ผ์ดํ ๋ฌธ๋ฒ์ ์ง์ํ๋ค.
- ์ฐธ/๊ฑฐ์ง(Boolean): true ๋๋ false ๊ฐ
- ๋ฐฐ์ด(Array): 0 ์ด์์ ์์์ ์ข ๋ฅ์ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง ์์๊ฐ ์๋ ๋ฆฌ์คํธ. ๋๊ดํธ๋ก ๋ํ๋ด๋ฉฐ ์์๋ ์ผํ๋ก ๊ตฌ๋ถํ๋ค.
- ๊ฐ์ฒด(Object): ์์๊ฐ ์๋ ์ด๋ฆ/๊ฐ ์์ ์งํฉ์ผ๋ก, ์ด๋ฆ(ํค)์ด ๋ฌธ์์ด์ด๋ค.
- null: ๋น ๊ฐ์ผ๋ก, null์ ์ฌ์ฉํ๋ค.
package.json
- package.json ํ์ผ์ ๋ฐฐํฌํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์ ๋ง๋ค์ด์ก๋ค.
- ์ง์ ์์ฑํ ์๋ ์๊ณ npm init ๋ช ๋ น์ ํตํด์ ์๋์ผ๋ก ์์ฑํ ์๋ ์๋ค.
- ํฐ๋ฏธ๋์ npm init -y๋ฅผ ์ ๋ ฅํ๋ฉด package.json ํ์ผ์ด ์๋์ผ๋ก ๋ง๋ค์ด์ง๋ค.
myData.json ์์
{
"string": "Imae",
"number": 123,
"boolean": true,
"null": true,
"object": {},
"array": []
}
json ํ์ผ ๋ด์ ํ๋์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ช ์ํ๋ค.
json ํ์ผ ๋ด์๋ ํ๋์ ๋ฐ์ดํฐ๋ง ๋ช ์ ๊ฐ๋ฅํ๋ฉฐ, ๋ ๊ฐ ์ด์์ ๋ถ๊ฐ๋ฅํ๋ค.
main.js ํ์ฉ
import myData from './myData.json'
console.log(myData)
// {string: 'Imae', number: 123, boolean: true, null: true, object: {…}, …}
// array: []
// boolean: true
// null: true
// number: 123
// object: {}
// string: "Imae"
// [[Prototype]]: Object
const user = {
name: 'imae',
age: 55,
emails: [
'kurt5451@naver.com',
'kwakjaemin123@gmail.com'
]
}
console.log('user', user) // user -> Object
// user
// {name: 'imae', age: 55, emails: Array(2)}
// age: 55
// emails: (2) ['kurt5451@naver.com', 'kwakjaemin123@gmail.com']
// name: "imae"
// [[Prototype]]: Object
const str = JSON.stringify(user) // ๋ฌธ์ ๋ฐ์ดํฐํ(JSON ํฌ๋งทํ)
console.log('str', str)
// str {"name":"imae","age":55,"emails":["kurt5451@naver.com","kwakjaemin123@gmail.com"]}
console.log(typeof str) // string
const obj = JSON.parse(str) // JSON ํ์ผ์ ๋ถ์ํ์ฌ ์ฌ์กฐ๋ฆฝ(์ค์ ๊ฐ์ฒด๋ฐ์ดํฐ๋ก ์ถ๋ ฅ)
console.log('obj', obj)
// obj
// {name: 'imae', age: 55, emails: Array(2)}
// age: 55
// emails: (2) ['kurt5451@naver.com', 'kwakjaemin123@gmail.com']
// name: "imae"
// [[Prototype]]: Object
JSON ํ์ผ์ ํ๋์ ๋ฌธ์ ๋ฐ์ดํฐ์ด๋ค. ์ด๊ฒ์ import๋ก ๊ฐ์ ธ์ค๋ฉด ๊ฐ์ฒด ๋ฐ์ดํฐ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
JSON ํ์ผ์ ๋ถ์ํ์ฌ ๊ฒฝ๋ํํ์ฌ ์กฐ๋ฆฝํ ํ ์ค์ ๋ก ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ ํ ํ์ฉํ๋ฉด ๋๋ค.
๋ฉ๋ชจ๋ฆฌ๋ง ์ฐธ์กฐํ๋ ํฐ ๋ฉ์ด๋ฆฌ์ ๋ฌธ์ ๋ฐ์ดํฐ๋ก ๊ด๋ฆฌ๋๋ค.
๊ทธ๊ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐ์ดํฐ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ JSON.parse๋ฅผ ์ฌ์ฉํ๊ณ
JSONํ ํ๊ธฐ ์ํด์๋ JSON.stringify๋ฅผ ํตํด ๋ฌธ์ ๋ฐ์ดํฐํ๋ฅผ ์์ผ์ค๋ค.
'๐ค Language > ๐จ JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS. OMDB API (0) | 2022.02.27 |
---|---|
JS. Storange (0) | 2022.02.26 |
JS. Lodash ์ฌ์ฉ๋ฒ (0) | 2022.02.25 |
JS. ๋ฐ์ดํฐ ์ค์ต ๊ฐ์ ธ์ค๊ธฐ, ๋ด๋ณด๋ด๊ธฐ (0) | 2022.02.25 |
JS. ์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ (0) | 2022.02.23 |