JSON(JavaScript Object Notation)์ด๋ ๋ฌด์์ธ๊ฐ?
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ ์กํ ๋ ๋ง์ด ์ฌ์ฉ๋๋ ๊ฒฝ๋์ DATA ๊ตํ ํ์. ํ ์คํธ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ํฌ๋งท์ผ๋ก ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ํ์ฑ ๋ฐ ์์ฑ์ด ์ฉ์ดํ๋ค. JSON์ ๋ฐ์ดํฐ ํฌ๋งท์ผ ๋ฟ์ด๋ฉฐ ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ํํ๋ฐฉ๋ฒ์ด๋ค.
JSON์ ํน์ง
- ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ JSON ๋ฌธ์๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๋ณํ ๊ฐ๋ฅ
- ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก๋ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค.
- ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ข ์๋์ง ์์ผ๋ฉฐ, ๋๋ถ๋ถ์ ์ธ์ด์์ JSON ํฌ๋งท์ ๋ฐ์ดํฐ๋ฅผ ํธ๋ค๋ง ํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค.
XML๊ณผ ๋ค๋ฅธ์ ?
์ฐ๋ฆฌ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๋ฐฉ๋ฒ ์ค ๋ํ์ ์ธ ๊ฒ์ด XML์ด๋ค.
- XML์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ค.
<person> <name>John</name> <age>30</age> </person>
- JSON์ ์ค๊ดํธ ํ์๊ณผ ‘,’๋ก ๋์ดํ๋ค. {ํค-๊ฐ} ์์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ๊ฐ์ฒด์ด๋ค.
{ "name": "John", "age": 30 }
xml์ ๋นํด ํ๊ทธ๊ฐ ์๊ธฐ์ ๊ฐ๋ ์ฑ์ด ์ข๋ค๋ ์ฅ์ ์ด ์๋ค.
์์ธํ JSON ๊ตฌ์กฐ๋ฅผ ์ค๋ช ํ๋ฉด
- ๊ฐ์ฒด(Object): ์ค๊ดํธ {}๋ก ํํ๋๋ฉฐ, ํค-๊ฐ ์์ ์งํฉ์ ๋๋ค. ๊ฐ ํค์ ๊ฐ์ ์ฝ๋ก (:)์ผ๋ก ๊ตฌ๋ถ
{ "name": "JSJ", "age": ์๋ฅธ๋งํ๋ค์ฏ์ด, "city": "์์ธ" }
- ๋ฐฐ์ด(Array): ๋๊ดํธ **[]**๋ก ํํ๋๋ฉฐ, ๊ฐ๋ค์ ์์๊ฐ ์๋ ๋ฆฌ์คํธ
[ "apple", "orange", "banana" ]
- ๊ฐ(Value): ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ, ๊ฐ์ฒด, ๋ฐฐ์ด, null ๋ฑ์ด ๊ฐ๋ฅํฉ๋๋ค.
{ "name": "JSJ", "age": 30405, "city": "์์ธ", "isStudent": true, "score": [90, 85, 92], "address": null}
JSON์ RESTful ์น ์๋น์ค์ ๊ฐ์ ๋ง์ API์์ ๋ฐ์ดํฐ ๊ตํ์ ํ์ค ํ์์ผ๋ก ์์ฃผ ํ์ฉ๋๋ค.
์ ๋ฆฌํ์๋ฉด
๋ธ๋ผ์ฐ์ ์ ์๋ฒ ๊ฐ์ ํต์ ์ ์ฌ์ฉ๋๋ ํ์ค data format์ด๋ค. ์ด๋ฌํ data format์๋ json ๋ฟ๋ง ์๋๋ผ xml๋ ์์ผ๋, xml์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ, json์ "userId": "keepcalm"์ ๊ฐ์ด key:value ํํ๋ฅผ ๊ฐ์ง๋ค. ๊ฐํธํจ์ด๋ ์ดํด๋ ์ธก๋ฉด์์ json์ด ๋ ๋์ ์์น๋ฅผ ์ ํ๊ณ ์์ด xml์ ์ํ์ง๊ณ ์๋ ์ถ์ธ์ด๋ค.
์ถ์ฒ: https://velog.io/@surim014/JSON์ด๋-๋ฌด์์ธ๊ฐ
https://aws.amazon.com/ko/compare/the-difference-between-json-xml/
'๐ผ๋ฐฑ์ค๋ > HTTP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
8. HTTP ํค๋ - ์บ์์ ์กฐ๊ฑด๋ถ ์์ฒญ (1) | 2024.01.09 |
---|---|
7. HTTP ํค๋ - ์ผ๋ฐํค๋ (0) | 2024.01.09 |
6. HTTP ์ํ ์ฝ๋ (1) | 2024.01.09 |
5. HTTP ๋ฉ์๋ ํ์ฉ (1) | 2024.01.09 |
4. HTTP API ๋ฉ์๋ (2) | 2024.01.09 |