whatisthis?

javaScript. (19) JSON (stringify / parse) ๋ณธ๋ฌธ

WEB STUDY/JAVASCRIPT

javaScript. (19) JSON (stringify / parse)

thisisyjin 2022. 1. 28. 15:24

๐Ÿ’ก JSON์ด๋ž€?

 

JavaScript Object Notation (JSON) ์€ 

์†์„ฑ-๊ฐ’ ์Œ(attribute–value pairs / array data types (or any other serializable value))

๋˜๋Š” "ํ‚ค-๊ฐ’ ์Œ"์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด

์ธ๊ฐ„์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํฌ๋งท.

 

 

์ธํ„ฐ๋„ท์—์„œ ์ž๋ฃŒ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ๊ทธ ์ž๋ฃŒ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Œ.

์ž๋ฃŒ์˜ ์ข…๋ฅ˜์— ํฐ ์ œํ•œ์€ ์—†์œผ๋ฉฐ, ํŠนํžˆ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ณ€์ˆ˜๊ฐ’์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•จ.

 

 

๋น„๋™๊ธฐ ๋ธŒ๋ผ์šฐ์ €/์„œ๋ฒ„ ํ†ต์‹  (AJAX)์„ ์œ„ํ•ด, ๋„“๊ฒŒ๋Š” XML(AJAX๊ฐ€ ์‚ฌ์šฉ)์„ ๋Œ€์ฒดํ•˜๋Š” ์ฃผ์š” ๋ฐ์ดํ„ฐ ํฌ๋งท.

 

 

** ์ฐธ๊ณ  ใ…ก ์ด์ „์— ๋ฐฐ์› ๋˜ ๋‚ด์šฉ ไธญ

console.dir - element๋ฅผ JSON๊ณผ ๊ฐ™์€ ํŠธ๋ฆฌ๊ตฌ์กฐ๋กœ ์ถœ๋ ฅ 

- ๊ฐ์ฒด ๋กœ๊น… โญ•

 


 

JSON ์€ ๋‹ค์‹œ๋งํ•ด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ฌธ๋ฒ•์„ ๋นŒ๋ฆฐ ๋ฐ์ดํ„ฐ ๊ตํ™˜๋ฐฉ์‹์ด๋‹ค.

 

 

์˜ˆ์‹œ> zeroCho ๋‹˜์˜ ํ™ˆํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ JSON์œผ๋กœ ๋‚˜ํƒ€๋ƒ„

{
 "title": "Zero Cho",
 "description": "Zero Cho's HomePage",
  "owner": "Zero Cho",
  "createdAt": "2016-04-05",
  "keyword": ["javascript", "nodejs", "mongodb", "react", "meteor"],
  "memberCount": 2,
  "private": false,
  "meta": {
    "googleAnalytics": true
 }
}

= ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•จ.

์›๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ XML์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, JSON์ด ์ฝ”๋“œ์˜ ์–‘์ด ๋” ์ ์–ด์„œ ๋งŽ์ด ์“ฐ์ž„.

 

 

___

 

<JSON ๊ทœ์น™>

 

- ์ผ๋ฐ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ฒ˜๋Ÿผ ๋ฌธ์ž์—ด / ์ˆซ์ž / ๋ถˆ๋ฆฐ / ๋ฐฐ์—ด / ๊ฐ์ฒด ๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

 

- ๋‹จ, ํ•จ์ˆ˜๋Š” ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ๋จ.

- ์ž‘์€๋”ฐ์˜ดํ‘œ (' ') ๋ง๊ณ  ํฐ๋”ฐ์˜ดํ‘œ(" ")๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•จ.

- key๊ฐ’๋„ ๋ฐ˜๋“œ์‹œ " " ๋กœ ๊ฐ์‹ธ์ค˜์•ผํ•จ

>>javaScript ๊ฐ์ฒด์—์„œ๋Š” key๋ฅผ ๋”ฐ์˜ดํ‘œ ์—†์ด ์ผ์ง€๋งŒ(์„ ํƒ์‚ฌํ•ญ) /  JSON์—์„œ๋Š” ๋‹ค๋ฆ„.

 

___

 

JSON ๊ฐ์ฒด

 

- ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” JSON ๊ฐ์ฒด๋ฅผ ์ œ๊ณตํ•˜์—ฌ JSON์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

 

-  ๋ฉ”์†Œ๋“œ

  • stringify
  • parse
let example = {
   "stringifyMe" : "please",
   "andParseMe" : "thankYou"
};

const string = JSON.stringify(example);     // '{"stringifyMe":"please","andParseME":"thankYou"}'
const parsed = JSON.parse(string);      // ์›์ƒํƒœ๋กœ

 

stringify๋Š” ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์ง€๋งŒ ๊ฐ์ฒด์ฒ˜๋Ÿผ ์ƒ๊ธด๊ฑฐ๊ณ 

parse๋Š” ๊ทธ ๋ฌธ์ž์—ด์„ ์›์ƒํƒœ๋กœ ๋Œ๋ ค์คŒ

 

>> JSON ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ „์†กํ•  ๋•Œ, ๊ฐ์ฒด๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ stringify๋ฅผ ํ•ด์คŒ.

๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„์—์„œ ๋Œ๋ ค๋ฐ›์„ ๋•Œ ๋ฌธ์ž์—ด์„ ๋‹ค์‹œ JSON ๊ฐ์ฒด๋กœ ๋ฐ”๊พธ๋Š” parse๋ฅผ ํ•ด์คŒ.

 

 

โ—โ—

 

JSON.parse()๋ฅผ ํ•  ๋•Œ

์ธ์ž๊ฐ€ undefined ์ด๊ฑฐ๋‚˜ JSONํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์—ด์ด๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

Uncaught SyntaxError: Unexpected token 

 

 

 


 

 

JSON ํ™œ์šฉ

 

JSON.stringify์™€

JSON.parse ๋ฅผ

๋™์‹œ์— ์‚ฌ์šฉํ•˜๋ฉด  >>> ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

โ• ์ฐธ์กฐ (reference)๊ฐ€ ์•„๋‹Œ ๋ณต์‚ฌ (copy)์ด๋‹ค!

 

let obj = { test: 'yes' };
let obj2 = JSON.parse(JSON.stringify(obj));       // { test: 'yes' }

obj2.test = 'change';
obj.test;  // 'yes'  ใ…ก ๋ณต์‚ฌ๋ฅผ ํ•ด์„œ ๋‘˜์€ ๋‹ค๋ฅธ ๊ฐ์ฒด์ด๋ฏ€๋กœ ๋ฐ”๋€Œ์ง€ ์•Š์Œ

 

 

 

 

 

 

์ถ”๊ฐ€ +++ 


 

๐Ÿ”ป ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด์ธ XML์— ๋Œ€ํ•ด 

 

 

etc) HTML vs XML

** XML์€ ๋ฐ์ดํ„ฐ ์ €์žฅ๊ณผ ์ „์†ก์„ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋งˆํฌ์—… ์–ธ์–ด์ž„. = eXtensible Markup Language HTML์ด ๋ฐ์ดํ„ฐ์˜ ํ‘œํ˜„์— ๊ทธ ๋ชฉ์ ์„ ๋‘๊ณ  ์žˆ๋‹ค๋ฉด XML์€ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ๊ตฌ์กฐ์ •์˜์— ๊ทธ ๋ชฉ์ ์„ ๋‘๊ณ  ์žˆ

mywebproject.tistory.com

XML์€ ๋ฐ์ดํ„ฐ ์ €์žฅ + ์ „์†ก์„ ์œ„ํ•œ ๋งˆํฌ์—… ์–ธ์–ด๋กœ, ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ๊ตฌ์กฐ์ •์˜์— ๊ทธ ๋ชฉ์ ์„ ๋‘๊ณ  ์žˆ์Œ.

์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ ๋งŒ ์žˆ๊ณ  HTML๊ฐ™์ด ํ‘œํ˜„ํ•˜์ง€๋Š” ์•Š์Œ.

 


 

https://mywebproject.tistory.com/161

 

>> ํฌ๋กฌ ํด๋ก ์ฝ”๋”ฉ์—์„œ๋„

json ๊ฐ์ฒด์˜ stringify๋ž‘ parse๋ฅผ ์ผ์—ˆ๋‹ค. ์ฐธ๊ณ .

๋ฌผ๋ก  ๊ฐ•์˜๋‚ด์šฉ์ด๋ผ private ๊ฑธ์–ด๋†จ๋‹ค. 

 

 

 

 


REFERENCE

 

 

(JavaScript) JSON

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ž ๊น JSON์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. JSON(JavaScript Object Notation)์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ๋นŒ๋ฆฐ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ํ˜•์‹์ž…๋‹ˆ๋‹ค. ์—ญ์‹œ๋‚˜ ๋ฌด์Šจ ๋ง์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ฃ ? { "title": "Zero Cho", "description": "Ze

www.zerocho.com

์ด ํฌ์ŠคํŒ…์€ zerocho๋‹˜์˜ javascript ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

๊ณต๋ถ€+๊ธฐ๋ก ์šฉ์œผ๋กœ ์ž‘์„ฑํ•œ ๊ฒƒ์ด๋ฉฐ, ์ž์„ธํ•œ ๊ฒƒ์€ ์œ„ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์„ธ์š”!