ajax ์ฌ์ฉํ๋ ์ค ํ๊ฐ์ง ์๋ฌธ์ด ์๊ฒผ์ต๋๋ค. ์ JSON.stringify๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ฉด ์ ์คํ๋ง @RequestBody์์ ๋ฐ์ง ๋ชปํ๋์ง ๋ง์ ๋๋ค.
๊ทธ๋์ data : {test : "test"} ์ data : JSON.stringify์ ํ์ ๋ค์ ์ฝ์๋ก ์ฐ์ด๋ณธ ๊ฒฐ๊ณผ ์ ์๋ object์ด๊ณ ํ์๋ string์ด์์ต๋๋ค. ์ฌ๊ธฐ์ ์ํ! ํ์ต๋๋ค. ๋ด๊ฐ ํํ ๋งํ๋ json๊ณผ js์์ ์ฌ์ฉํ๋ javacscript Object๋ ๋ค๋ฅธ๊ฑฐ๊ตฌ๋! ๊ทธ๋์ ์ด๊ฑฐ์ ๋ํด ๊ธ์ ์ฐพ์๋ณธ ํ ์ ๋ง ์ ์ค๋ช ํด์ฃผ์ ๊ธ์ด ์์ด์ ๊ฐ์ ธ์๋ดค์ต๋๋ค.
์ด๊ธ์ yongseong.log ๋์ ๊ธ์ ๋๋ค.
์ ๋ง ๋น์ทํ๊ฒ ์๊ฒจ๋จน์ ๋
์๋ค์ด ์กด์ฌํฉ๋๋ค.
๋ฐ๋ก ํํ๋ค ์ฌ์ฉํ๋ JSON(JavaScript Object Notation)๊ณผ JavaScript Object์ธ๋ฐ์. ์ฌ์ค ๋์ ์์ฃผ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ์ ๊ฐ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์๋ ๋ถ๋ค๋ ์ข
์ข
์์ต๋๋ค. (์ ์ญ์ ๊ทธ๋ฌ์ต๋๋ค. ๐ค )
์ค๋์ ๊ฐ๋จํ๊ฒ ์ด ๋์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ฐจ์ด์
JS Object๋ JS Engine ๋ฉ๋ชจ๋ฆฌ ์์ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๊ณ , JSON์ ๊ฐ์ฒด์ ๋ด์ฉ์ ๊ธฐ์ ํ๊ธฐ ์ํ text ํ์ผ์ด๋ผ๋ ์ ์ด ๋ค๋ฆ ๋๋ค. JSON์ "ํ์ผ"์ด๋ฏ๋ก ํ์ฅ์ ๋ช ์ด .JSON์ธ ํ์ผ์ด ์กด์ฌํฉ๋๋ค.
์ด ๋ฉ์๋๋ฅผ ํตํด ์ ๊ฐ ๋งํ๊ณ ์ถ์ ๊ฒ์ JS Object๋ก HTTP ํต์ ํ๋ ๊ฒ์ด ์๋๋ผ, JSON์ผ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ HTTP ํต์ ์ ํ ๋์๋ JS Object๊ฐ ์๋ JSON์ผ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํ๋ก ํธ์๋์์ JSON ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ธฐ ์ํด์๋ JS Object๋ก ๋ณ๊ฒฝํด์ฃผ๋ ๋ฉ์๋๊ฐ ํ์ํ ๊ฒ์ด๊ณ , ๋ํ ๋ฐฑ์๋์ JSON ์์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํด์๋ ๋ฉ์๋๊ฐ ํ์ํ ๊ฒ์ด์ฃ .
- JSON์ JS Object๋ก ํ์ฑํ๊ธฐ ์ํด์ ํ์ํ ๋ฉ์๋๊ฐ JSON.parse() ๋ฉ์๋๋ผ๋ ๊ฒ์ด๊ตฌ์.
- JS Object๋ฅผ JSON์ผ๋ก ๋ณํํด์ฃผ๊ธฐ ์ํด ํ์ํ ๊ฒ์ด JSON.stringify() ๋ฉ์๋๊ฐ ๋๋ ๊ฒ์ ๋๋ค.
๋ฌผ๋ก JSON ์ด๋ผ๋ ๋ ์์ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด, ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ ์์ฒด๋ JS Object๋ก๋ถํฐ ์ฐฉ์์ ํ ๊ฒ์ด ๋ง์ต๋๋ค. ๋ค์ ์์ค์ฝ๋๋ฅผ ํ๋ฒ ์ดํด๋ณผ๊น์?
//compare.js
const str=`{"data":[{"name":"yongseong","info":["student","27"]}]}`;
const obj = {data:[{name:'yongseong',info:['student','27']}]};
str์ด๋ผ๋ ๋ณ์์ ํ ๋น ๋ ๊ฒ์ JSON ํํ์ด๊ณ , obj๋ผ๋ ๋ณ์์ ํ ๋น ๋ ๊ฒ์ JavaScript object ํํ์ ๋๋ค. ์ด๋ค ์ฐจ์ด์ ์ด ๋ณด์ด์๋์?
- JSON์์๋ ๋ชจ๋ ํค ๋ฅผ ๋ฐ์ดํ๋ก ๋ฌถ์ด์ผํ์ง๋ง JavaScript object์์๋ ์ด๊ฒ์ด ํ์ํ์ง ์์ต๋๋ค.
- JSON์ type ํํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก string์ ๋๋ค.
- JSON์ ํจ์๋ฅผ ๊ฐ์ผ๋ก ํ ๋นํ ์ ์์ต๋๋ค.
(์ถ์ฒ: https://developer.mozilla.org/)
JSON.parse()
JSON.parse()๋ JSON์ JavaScript Object๋ก ๋ณ๊ฒฝํด์ฃผ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ฉ์๋์ ๋๋ค.
const str=`{"data":[{"name":"yongseong","info":["student","27"]}]}`;
obj=JSON.parse(str)
console.log("My name is",str.data[0].name) // Uncaught TypeError: Cannot read property '0' of undefined
console.log("My name is",obj.data[0].name) // My name is yongseong
์ด๋ ๊ฒ JSON.parse() ๋ฉ์๋๋ฅผ ํตํด์ JSON์ ๋ฐ์ดํฐ๋ค์ ๋ค๋ฃฐ ์ ์๋ ๊ฒ์ ํ์ธํ์ค ์ ์์ต๋๋ค.
(์ถ์ฒ: https://developer.mozilla.org/)
JSON.stringify()
JSON.stringify()๋ก๋ JSON.parse() ์ ๋ฐ๋์ ๊ณผ์ ์ ์ํํ ์ ์์ต๋๋ค.
const obj = {data:[{name:'yongseong',info:['student','27']}]};
str=JSON.stringify(obj)
console.log(str) //{"data":[{"name":"yongseong","info":["student","27"]}]}
console.log(typeof(str)) //string
(์ถ์ฒ: https://developer.mozilla.org/)
๋ง๋ฌด๋ฆฌ
์ด์์ผ๋ก JSON๊ณผ Object์ ์ฐจ์ด ๋ฐ ๋ณํ ๋ฉ์๋์ ๋ํด ์์๋ณด์์ต๋๋ค.
JSON๊ณผ JS Object๋ ์์ฐํ ๋งํ๋ฉด ๋ค๋ฅธ ๊ฒ์
๋๋ค. ์ด ๋ถ๋ถ์ ๋ํด์ ์ ์์๋์๋ฉด ์ข์ ๊ฒ ๊ฐ์์.
๋ํ ์ ํํ ์๋ฏธ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ํผ์ฉํด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค:)
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[EKS] EKS๋ก ๊ตฌ์ถํ cluster ์ธ๋ถ ์ ๊ทผํ๊ธฐ (0) | 2021.09.10 |
---|---|
[JavaScript] ํ์ฌ ๋ ์ง, ์๊ฐ ๊ตฌํ๊ธฐ (yyyy-MM-dd HH:mm:ss) (0) | 2021.09.09 |
[JavaScript] ๊ฒ์์ ๊ท์ฐฎ๊ณ ๊ธฐ์ต์ ์๋๊ณ ajax ๊ธฐ๋ณธ ์์ (0) | 2021.09.03 |
[Network]์ฌ์ด๋(CIDR) ๋ ๋ฌด์์ธ๊ฐ? (0) | 2021.08.31 |
[MySQL] ํ๋ก์์ ๋ฅผ ์ด์ฉํ ๋๋ฏธ๋ฐ์ดํฐ ์ฝ์ ํ๊ธฐ (0) | 2021.08.31 |