๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ“บ Front End/- HTML,css,Javascript

[Javascript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ JSON ์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•

by Wonit 2021. 2. 20.

JSON

Json ์€ JavaScript Object Notation ์ด๋ผ๋Š” ์˜๋ฏธ์˜ ์ถ•์•ฝ์–ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ฑฐ๋‚˜ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ๋Ÿ‰ ๋ฐ์ดํ„ฐ ํ˜•์‹์ด๋‹ค.


๋ณดํ†ต JSON์„ REST API ํ†ต์‹ ํ•  ๋•Œ ์ฃผ๊ณ ๋ฐ›๋Š” Request, Response Body ์— ์‚ฌ์šฉํ•œ๋‹ค.


์ฆ‰ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ„์˜ ๊ต๋ฅ˜์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผํ•  ๋‚ด์šฉ์„ JSON ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ „์†กํ•œ๋‹ค.


๊ทธ๋Ÿผ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์˜จ JSON ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์˜ ์ŠคํŽ™์— ๋งž๊ฒŒ ์žฌ๋ณ€ํ™˜ํ•œ๋‹ค.


์—ฌ๊ธฐ์„œ ๋ง ํ•˜๋Š” ์„œ๋ฒ„์˜ ์„œํŽ™์ด๋ž€ Java๋กœ ๊ตฌ์„ฑ๋œ ์„œ๋ฒ„์ธ์ง€, Python์œผ๋กœ ๊ตฌ์„ฑ๋œ ์„œ๋ฒ„์ธ์ง€๋ฅผ ๋œปํ•œ๋‹ค.

 

์›๋ž˜ JSON์ด๋ผ๋Š” ๊ฒƒ์€ JavaScript์—์„œ ํƒ„์ƒํ•œ ํ˜•์‹์ด๋ผ Js์˜ ๊ฐ์ฒด์™€ ๋งค์šฐ ๋น„์Šทํ•˜๋‹ค.

Javascript Object VS JSON

const person = {
  name: "jang",
  age: 12,
};
{
  "name": "jang",
  "age": 12
}

์ด์™€ ๊ฐ™์€ ํŠน์ง• ๋•Œ๋ฌธ์— Javascript ์—์„œ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ์‹ค์€ ์–ด๋–ค ์–ธ์–ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ๋„ ํ•˜๋ฉฐ ๊ทธ ์ƒํƒœ ์ž์ฒด๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


ํ•˜์ง€๋งŒ ๊ทธ ์ƒํƒœ ์ž์ฒด๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด Ajax์—์„œ ํŠน์ • ์ทจ์•ฝ์ ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜ํ•˜์ž

JSON ๋ฌธ๋ฒ•

JSON์€ "Key" : "Value" ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

 

Key๋‚˜ Value๋Š” ์–ด๋– ํ•œ ํƒ€์ž…์˜ ๊ฐ’์ด ์˜ฌ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ฌธ์ž์—ด์ด ์˜ฌ ๊ฒฝ์šฐ ํ•ญ์ƒ ์Œ๋”ฐ์˜ดํ‘œ๋ฅผ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.


๋˜ํ•œ ๊ฐ์ฒด ์ฒ˜๋Ÿผ ์ค‘์ฒฉ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

{
  "name": "jang"
}
{
  "name": "jang",
  "age": 12
}
{
  "user": [
    {"id": 1, "name": "jang", "age": 12, "hobby": ["singing", "game"]},
    {"id": 1, "name": "jang", "age": 12, "hobby": ["cooking", "math"]},
    {"id": 1, "name": "jang", "age": 12, "hobby": ["cleaning", "running"]},
  ],
  "order_list": [
    {
      "order_id": 1,
      "order_item_name": "๋…ธํŠธ๋ถ",
      "order_date": "2021-01-03:12:12:32"
    },
    {
      "order_id": 1,
      "order_item_name": "์ฒญ๋ฐ”์ง€",
      "order_date": "2021-01-03:12:12:32"
    },
    {
      "order_id": 1,
      "order_item_name": "์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฑ…",
      "order_date": "2021-01-03:12:12:32"
    }
  ]
}

Javascript ์—์„œ JSON ์‚ฌ์šฉํ•˜๊ธฐ

์ด์ œ ๋“œ๋””์–ด ์ด๋ฒˆ ๊ธ€์˜ ๋ชฉ์ ์ธ JSON์„ Javascript์—์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ์ง€์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐํ•ด๋ณด์ž.

 

์šฐ์„  JSON์„ Javascript์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์•ž์—์„œ Client-Server ํ†ต์‹ ์—์„œ JSON์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ๋ง ํ–ˆ๋‹ค.

 

  • ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผํ•  ๋‚ด์šฉ์„ JSON ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ „์†กํ•œ๋‹ค.
  • ๊ทธ๋Ÿผ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์˜จ JSON ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์˜ ์ŠคํŽ™์— ๋งž๊ฒŒ ์žฌ๋ณ€ํ™˜ํ•œ๋‹ค.

์ด ๋‘ ๊ธฐ๋Šฅ์„ Javascript์—์„œ ์ง€์›ํ•œ๋‹ค.


์œ„์˜ ๋‘ ๊ธฐ๋Šฅ์„ ์ข€ ๋” ์ผ๋ฐ˜์ ์œผ๋กœ ์ผ๋ฐ˜ํ™” ํ•˜๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  1. Javascript ๊ฐ์ฒด๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜
  2. JSON ์„ Javascript ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜

Javascript์—์„œ๋Š” ์ด ๋‘ ๊ฐ€์ง€์˜ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ JSONํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ์ œ๊ณตํ•œ๋‹ค.

 

Javascript ๊ฐ์ฒด๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜

Javascript ๊ฐ์ฒด๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” JSON.stringify()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋ณดํ†ต ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ Front ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

 

JSON.stringify(value[, replacer[, space]])

 

์œ„๋Š” ์ •์„ ์‚ฌ์šฉ๋ฒ•์ด๊ณ  ๋Œ€๋ถ€๋ถ„ ์šฐ๋ฆฌ๋Š” ๋‹จ์ผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

JSON.stringify({}); // '{}'
JSON.stringify(3.14); // '3.14'
JSON.stringify("abc"); // '"abc"'
JSON.stringify(true); // 'true'
JSON.stringify({ name: "jang", age: 12 }); // '{"name": "jang", "age": 12}'

 

 

JSON ์„ Javascript ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜

 

JSON์„ Javascript ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ๋Š” JSON.parse() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋ณดํ†ต ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ Front ์—์„œ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

JSON.parse(text[, reviver])

 

์œ„์˜ JSON.stringify()์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

 

JSON.stringify("{}"); // {}
JSON.stringify("3.14"); // 3.14
JSON.stringify('"abc"'); // "abc"
JSON.stringify("true"); // true
JSON.stringify('{"name": "jang", "age": 12}'); // {"name": "jang", "age": 12}

๋Œ“๊ธ€