๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Basics/Develop

[JS]JSON key ๊ฐ€์ ธ์˜ค๊ธฐ, keys(), getOwnPropertyNames(), for ๋“ฑ๋“ฑ ๋น„๊ต

by IworldT 2021. 9. 7.
๋ฐ˜์‘ํ˜•

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ JSON ๋ฐ์ดํ„ฐ๋Š” ๋งค์šฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ๋งŒํผ key ๊ฐ’์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜๋‹ค.

๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜๋ก JSON์˜ key ๊ฐ’์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์ด ์ข…์ข… ๋‚˜ํƒ€๋‚˜๋Š”๋ฐ, ๊ทธ๋Ÿด ๋•Œ๋ฉด ๋‚ด๊ฐ€ JSON ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ž˜๋ชป ๋ฌถ์—ˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ฒŒ ๋œ๋‹ค. ์šฐ์„  ์ด ์–˜๊ธฐ๋Š” ๋’ค์—์„œ ํ•˜๊ธฐ๋กœ ํ•˜๊ณ , JSON์˜ key ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.

 

 

1. keys()

 

Object.keys(JsonData);

 

Object.keys ๋ฌธ๋ฒ•์— ํŒŒ๋ผ๋ฉ”ํ„ฐ๋กœ ํ‚ค๋ฅผ ์ฐพ๊ณ ์‹ถ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 

data.code๋Š” key๊ฐ€ CMP011์ด๊ณ  value๊ฐ€ List์ธ JSON ๋ฐ์ดํ„ฐ์ด๋‹ค. key๊ฐ€ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•œ๋‹ค.

 

 

์œ„์˜ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋ฉด key์˜ ๊ฐ’์ด ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค. key๊ฐ€ ํ•˜๋‚˜์—ฌ๋„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.

 

 

 

2. getOwnPropertyNames()

 

Object.getOwnPropertyNames(JsonData);

 

keys()์™€ ๊ฑฐ์˜ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ keys()๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋œ๋‹ค.

 

 

์•„๊นŒ์™€ ๊ฐ™์€ ๊ทธ JSON ๋ฐ์ดํ„ฐ๋กœ getOwnPropertyNames()๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

 

 

๋ฐ˜ํ™˜๊ฐ’๋„ ๋˜‘๊ฐ™์ด key ๊ฐ’์ด ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค. ํ•จ์ˆ˜๋ช…์€ ์กฐ๊ธˆ ๋” ๊ธธ์ง€ ๋ชฐ๋ผ๋„, for๋ฌธ๊ณผ ๊ฐ™์ด ๋ฃจํ”„๋ฅผ ๋Œ์•„ ์ฐพ์•„์ฃผ๋Š” keys()๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋น ๋ฅด๋‹ค.

 

 

 

3. for( key in JSON)

 

var keys=[];

for(key in JsonData) {
	keys.push(key)
}

 

์ง์ ‘ for ๋ฌธ์„ ๋Œ์•„ key๋ฅผ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๊ทธ๋ƒฅ key ๊ฐ’์„ ์ฐพ์„ ๋•Œ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๊ณ , key ๊ฐ’์„ ์ฐพ์œผ๋ฉด์„œ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

 

 

๊ทธ๋Ÿผ ์ด์ œ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€์„œ... key ๊ฐ’์„ ์ฐพ์•„์„œ ์“ฐ๋Š” ์ƒํ™ฉ์ด ์™œ ์•ˆ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ๋Š”์ง€  ๋งํ•ด๋ณด์ž.

 

๋‚ด๊ฐ€ ์˜ˆ์‹œ๋กœ ๋“ค์€ Json ๋ฐ์ดํ„ฐ๋Š” key ๊ฐ’์ด "์ฝ”๋“œ๋ช…CMP011"์ด๊ณ , value ๊ฐ’์ด "์†Œ๋ถ„๋ฅ˜ ์ฝ”๋“œ๋“ค(Array(3))"๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.

 

 

์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” "์ฝ”๋“œ๋ช…CMP011" ๋˜ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ ธ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฐ’์ด๋ผ๋Š” ์ ์ด๋‹ค. ๊ทธ๋Ÿผ ์ด ๊ฐ’์€ key๊ฐ€ ์•„๋‹Œ value๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค.

์ด ์ฝ”๋“œ์˜ ์†Œ๋ถ„๋ฅ˜ ์ฝ”๋“œ๋“ค๊ณผ ๋ฌถ์–ด์„œ ์ €์žฅํ•˜๋ ค๊ณ  key๋กœ ๋งŒ๋“ค์–ด๋ฒ„๋ฆฐ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ์ฝ”๋“œ๋ช…์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์ด ๋งŽ์œผ๋‹ˆ ์ž๊พธ data.code์˜ key๊ฐ’์„ ์ฐพ์•„์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์˜ค๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค. ์ด ๊ธ€์„ ์ฝ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ๋„ ์ด์™€ ๋น„์Šทํ•˜์ง€ ์•Š์„๊นŒ ์ƒ์ƒํ•ด๋ณธ๋‹ค. 

 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ˜•ํƒœ๋ฅผ ๋ฐ”๊พธ์–ด ์ฃผ์–ด์•ผ ํšจ์œจ์ ์ด๊ฒ ๋‹ค.

 

 

key๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๊ฐ’์ด ์•„๋‹Œ, ๊ทธ ๊ฐ’์„ ํ‘œํ˜„ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ๋ช…์‹œํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

{ ์ฝ”๋“œ๋ช… : cmp, ์†Œ๋ถ„๋ฅ˜์ฝ”๋“œ๋ฆฌ์ŠคํŠธ : Array(3) } ์ด๋ ‡๊ฒŒ ๋ฌถ์–ด์ฃผ๊ณ , ๋‹ค๋ฅธ ์ฝ”๋“œ๋“ค์ด ์ƒ๊ธด๋‹ค๋ฉด 

[ { ์ฝ”๋“œ๋ช… : cmp, ์†Œ๋ถ„๋ฅ˜์ฝ”๋“œ๋ฆฌ์ŠคํŠธ : Array(3) }, { ์ฝ”๋“œ๋ช… : tas, ์†Œ๋ถ„๋ฅ˜์ฝ”๋“œ๋ฆฌ์ŠคํŠธ : Array(4) } ] ์ด๋ ‡๊ฒŒ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฌถ์–ด์ฃผ๋ฉด ๋!

 

์ด์ƒ ๊ฐœ์ธ์ ์ธ JSON Data์— ๋Œ€ํ•œ ์˜๊ฒฌ์ด์—ˆ๋‹ค!

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, JS, JSON, JavaScript, JSON Object, keys, key, getKey, getOwnPropertyNames, for

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€