1 minute read


JSON

๐Ÿ‘‰ JSON์ด๋ž€?

json

JSON์€ JavaScript Object Notation์˜ ์•ฝ์ž๋กœ, ๊ฐ์ฒด ๋ฌธ๋ฒ•์œผ๋กœ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ํ‘œ์ค€ ํฌ๋งท์ด๋‹ค.

  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. (์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋ ค๊ฑฐ๋‚˜ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ)
  • JSON์€ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • JavaScript์—์„œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‘œํ˜„์‹์„ ์˜๋ฏธํ•œ๋‹ค.
  • JSON ํ‘œํ˜„์‹์€ ์‚ฌ๋žŒ๊ณผ ๊ธฐ๊ณ„ ๋ชจ๋‘ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉฐ ์šฉ๋Ÿ‰์ด ์ž‘์•„์„œ, ์ตœ๊ทผ์—๋Š” JSON์ด XML์„ ๋Œ€์ฒดํ•ด ๋ฐ์ดํ„ฐ ์ „์†ก ๋“ฑ์— ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.


โ–ถ๏ธ JSON ๊ตฌ์กฐ

JSON์€ JavaScript ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฌธ๋ฒ•์„ ๋”ฐ๋ฅด๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. JSON ์•ˆ์—๋Š” ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ JavaScript์˜ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ธ ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ฐฐ์—ด, boolean, ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.

{
  "squadName": "Super hero squad",
  "homeTown": "Metro City",
  "formed": 2016,
  "secretBase": "Super tower",
  "active": true,
  "members": [
    {
      "name": "Molecule Man",
      "age": 29,
      "secretIdentity": "Dan Jukes",
      "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"]
    },
    {
      "name": "Madame Uppercut",
      "age": 39,
      "secretIdentity": "Jane Wilson",
      "powers": [
        "Million tonne punch",
        "Damage resistance",
        "Superhuman reflexes"
      ]
    },
    {
      "name": "Eternal Flame",
      "age": 1000000,
      "secretIdentity": "Unknown",
      "powers": [
        "Immortality",
        "Heat Immunity",
        "Inferno",
        "Teleportation",
        "Interdimensional travel"
      ]
    }
  ]
}


โ–ถ๏ธ JSON์˜ ๊ธฐ๋ณธ ๊ทœ์น™

JSON์€ ์–ผํ• ๋ณด๊ธฐ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด์™€ ๋ณ„๋ฐ˜ ๋‹ค๋ฅผ ๋ฐ” ์—†์–ด๋ณด์ด์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด์™€๋Š” ๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ๋‹ค๋ฅธ ๊ทœ์น™์ด ์žˆ๋‹ค.

ย  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด JSON
ํ‚ค ํ‚ค๋Š” ๋”ฐ์˜ดํ‘œ ์—†์ด ์“ธ ์ˆ˜ ์žˆ์Œ
{ key : "property" }
๋ฐ˜๋“œ์‹œ ์Œ๋”ฐ์˜ดํ‘œ๋ฅผ ๋ถ™์—ฌ์•ผ ํ•จ
'{"key":"property"}'
๋ฌธ์ž์—ด ๊ฐ’ ์ž‘์€๋”ฐ์˜ดํ‘œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
{"key" : 'property'}
๋ฐ˜๋“œ์‹œ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์•ผ ํ•จ
'{"key":"property}'
ํ‚ค์™€ ๊ฐ’ ์‚ฌ์ด ๊ณต๋ฐฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
{"key" : 'property'}
์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ
'{"key":"property}'
ํ‚ค-๊ฐ’ ์Œ ์‚ฌ์ด ๊ณต๋ฐฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
{ key:'property', num:1 }
์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ
'{"key":"property","num":1}'

๊ทธ ์™ธ ๊ทœ์น™

  • ๊ฐ์ฒด์™€ ๋ฐฐ์—ด์˜ ํ›„ํ–‰ ์‰ผํ‘œ๋Š” ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ฃผ์„ ๋ฐ undefined ๋ฏธ์ง€์›


โ–ถ๏ธ ๋ฉ”์„œ๋“œ

JSON.parse()

๋ฌธ์ž์—ด โ†’ ๊ฐ์ฒด

๋ฌธ์ž์—ด์„ JSON์œผ๋กœ์„œ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ , ์„ ํƒ์ ์œผ๋กœ ๋ถ„์„ ๊ฒฐ๊ณผ์˜ ๊ฐ’๊ณผ ์†์„ฑ์„ ๋ณ€ํ™˜ํ•ด ๋ฐ˜ํ™˜ํ•œ๋‹ค.

JSON.stringify()

๊ฐ์ฒด โ†’ ๋ฌธ์ž์—ด

์ฃผ์–ด์ง„ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” JSON ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ํŠน์ • ์†์„ฑ๋งŒ ํฌํ•จํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐฉ์‹์œผ๋กœ ์†์„ฑ์„ ๋Œ€์ฒดํ•œ๋‹ค.

Reference

MDN : JSON, JSON์œผ๋กœ ์ž‘์—…ํ•˜๊ธฐ

devkuma : JSON ์ด๋ž€?

Leave a comment