본문 바로가기
React,Node,JQuery,js

[Javascript] JSON Object key, value 가져오기

by bryan.oh 2023. 1. 28.
반응형

JSON 의 모든 키와 값을 출력하는 방법

const json = { "name": "bryan", "age": 87, "city": "Suwon" };

console.log("방법 1");
for (var key in json) {
    console.log(key + " : " + json[key]);
}

console.log("방법 2");
Object.entries(json).forEach(
    ([key, value]) => console.log(`${key} : ${value}`)
);

console.log("방법 3");
Object.keys(json).forEach(key => {
    console.log(`${key} : ${json[key]}`);
});

 

하지만, json 안에 또다른 json objecy 가 있다면,

const json = { 
  "name": "bryan", 
  "age": 87, 
  "city": "Suwon",
  "score": {
    "Math": 95,
    "Eng": 97,
    "Kor": 12
  }
};

위의 코드로는 아래와 같이 출력됩니다.

 

Recursive 하게 모두 출력한다면 아래와 같은 코드를 사용하면 됩니다.

function printJSON(json) {
  for (let key in json) {
    if (json.hasOwnProperty(key)) {
      if (typeof json[key] === "object") {
        console.log(key + ":");
        printJSON(json[key]);
      } else {
        console.log(key + ": " + json[key]);
      }
    }
  }
}

 

아래는 lodash 를 이용한 코드 입니다.

const _ = require('lodash');

const json = {
  name: 'bryan',
  age: 87,
  city: 'Suwon',
  score: {
    Math: 95,
    Eng: 97,
    Kor: 12,
  },
};

function printKeyValue(obj) {
  _.forEach(obj, function(value, key) {
    console.log(key + ": " + value);
    if (_.isObject(value)) {
      printKeyValue(value);
    }
  });
}

printKeyValue(json);

 

 

728x90
반응형

댓글