[5] JSON

Naakiteยท2022๋…„ 2์›” 13์ผ
0

๐Ÿ“๋“œ๋ฆผ์ฝ”๋”ฉ JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
5/6
post-thumbnail

๐Ÿ JSON

JSON์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ HTTP ํ†ต์‹ ์„ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์ข…์†๋˜์ง€์•Š์€ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ํฌ๋งท์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด์™€ ์œ ์‚ฌํ•˜๊ฒŒ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋Š” ์ˆœ์ˆ˜ํ•œ ํ…์ŠคํŠธ๋‹ค.

  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ํ†ต์‹ 

  • json์—์„œ string ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €์—์„œ string ํƒ€์ž…์„ ๋ฐ›์•„์„œ,
    ๋‹ค์‹œ ์˜ค๋ธŒ์ ํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ณด์—ฌ์ค€๋‹ค.
    serialize: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๊ฐ์ฒด๋ฅผ ์ „์†กํ•˜๋ ค๋ฉด ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ดํ™”ํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด๋ฅผ ์ง๋ ฌํ™”๋ผ๊ณ  ํ•œ๋‹ค.

    deserialize: ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†ก๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. ์ด ๋ฌธ์ž์—ด์„ ๊ฐ์ฒด๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฌธ์ž์—ด์„ ๊ฐ์ฒดํ™” ํ•ด์•ผํ•˜๋Š”๋ฐ ์ด๋ฅผ ์—ญ์งˆ๋ ฌํ™”๋ผ๊ณ  ํ•œ๋‹ค.

๐Ÿ stringify() & parse()

1. stringfy

json ๊ฐ์ฒด๋ฅผ String๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

const rabbit = {
  name: 'tori',
  color: 'white',
  size: 'null',
  brithDate : new Date(),
  jump: ()=> {
    console.log(`${name} can jump!`);
  },
};
json = JSON.stringify(rabbit);
console.log(json);
/* {\"name\":\"tori\",\"color\":\"white\",\"size\":\"null\",\"brithDate\":\"2022-02-13T14:35:35.521Z\"}*/

โœ… ํ† ๋ผ ๊ฐ์ฒด์—์„œ ์ด๋ฆ„๋งŒ json์œผ๋กœ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?

json = JSON.stringify(rabbit, ['name']);
console.log(json);
/*{\"name\":\"tori\"}*/

โœ… ์ฝœ๋ฐฑํ•จ์ˆ˜ ์‚ฌ์šฉ

json = JSON.stringify(rabbit, (key, value)=>{
    console.log(`key: ${key}, value: ${value}`);
    return value;
});
console.log(json);


๋ชจ๋“  ํ‚ค์™€ ๊ฐ’๋“ค์ด ์ฝœ๋ฐฑํ•จ์ˆ˜์— ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠน์ดํ•œ ์ ์€ ์ฒซ๋ฒˆ์งธ๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์€ ํ† ๋ผ ๊ฐ์ฒด๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ์ œ์ผ ์ตœ์ƒ์œ„ ๊ฒƒ์ด ์ „๋‹ฌ๋œ๋‹ค. ๊ทธ ๋’ค๋ถ€ํ„ฐ ํ‚ค์™€ ๊ฐ’๋“ค์ด ์ „๋‹ฌ๋œ๋‹ค.

json = JSON.stringify(rabbit, (key, value)=>{
    return key === 'name' ? 'ellie' : value ;
   // key ๊ฐ€ name ์ผ๋•Œ value๋ฅผ ellie๋กœ ์„ค์ •ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋Š” ์›๋ž˜ value๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
});
console.log(json);

2. parse

json ๊ฐ์ฒด๋ฅผ json ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

json = JSON.stringify(rabbit);
const obj = JSON.parse(json);
console.log(obj);

String์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ json์œผ๋กœ๋ถ€ํ„ฐ ๋‹ค์‹œ ์˜ค๋ธŒ์ ํŠธ๋กœ ๋งŒ๋“ค ๊ฒฝ์šฐ์—๋Š” ์›๋ž˜ ๊ฐ์ฒด์•ˆ์— ํฌํ•จ๋˜์–ด ์žˆ๋˜ ํ•จ์ˆ˜๋Š” ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.

โœ… stringify ๋ฉ”์„œ๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋‹ค!

json = JSON.stringify(rabbit);
const obj = JSON.parse(json, (key, value)=>{
  console.log(`key: ${key}, value: ${value}`);
  return value;
});


๋“œ๋ฆผ์ฝ”๋”ฉ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

profile
๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿƒโ€โ™€๏ธ

0๊ฐœ์˜ ๋Œ“๊ธ€