기브
10
2017-12-31 04:06:41
4
3986

JSON의 value 추출 방법을 모르겠어요


스프링으로 개발 중인 사람입니다.

저는 원하는 key를 매개변수로 넣어서, JSON에서 해당 key값에 해당하는 value값을 찾고싶어요.


console.log => {user_id: "overgive", adminChk: "Y"}

이렇게 JSON으로 받아왔는데, user_id의 value만 추출하는 방법을 모르겠어요.

두 개의 키가 모두 필요해서, 하나를 버릴 수는 없습니다.

사용중인 JQUERY 함수는 아래 모양이고, 1)번과 2)번의 두 개의 방법을 사용했어요.



function getValue(key) {

$.getJSON(key+".json", function(data){

console.log(data);  //위에 표기된 log가 찍힙니다.

                1) return data.key;

2) $.each(json, function(key, value){

return value;

    });

});

}


처음에 시도한 1) 번의 방법은 매개변수의 값(key에 넣어준 값)을 가져오지 못하고 data.'key'처럼 적용되어 사용하지 못했습니다. (data.user_id라고 직접 적어주어야 적용가능. 하지만 저는 매개변수를 사용하는 function을 만들고 싶어요)

두 번째로 시도한 2)번의 방법은 두 개의 value를 모두 가져와서, return값을 출력하면 undefined가 됩니다.


선생님들! 도와주세요 ㅠㅠ 어떻게 하면 원하는 매개변수 key값의 value를 가져올 수 있을까요?

0
0
  • 답변 4

  • devjang
    1k
    2017-12-31 04:43:39

    data[key]

    이렇게 접근해보세요

    1
  • 허그보이
    33
    2017-12-31 11:16:16

    위에분 내용 좀 풀어서 써드리면

    var i = {user_id: "overgive", adminChk: "Y"};

    i["user_id"] << 이런식으로 


    JSON키의 모음만 필요하시면 Object.keys(i) 이런식으로 

    1
  • 기브
    10
    2017-12-31 19:21:00 작성 2017-12-31 19:29:03 수정됨

    function getValue(key) {

    $.getJSON(key+".json", function(data){

    console.log(data);  //위에 표기된 log가 찍힙니다.

    var i=data;

    return i[key];

    });

    }

    아 ㅠㅠ 해결이 된 줄 알았는데 아니군요... 위와 같이 사용했는데,
    위 function에서는 제대로 된 값을 보내는데, 받는 곳에서 undefined가 뜨네요.
    비동기 문제인가 해서 setTimeout으로 0.5초 이후 실행해도 여전히 undefined이군요 ㅠㅠ
    0
  • 기브
    10
    2017-12-31 20:09:20

    ajax로 해결했습니다!

    해결의 키

    1) var i = data; return i[key]

    2) getJSON을 ajax로 바꾸어 async: false;로 진행

    감사합니다 선생님들 :) 타자는 즐겁게 코딩하러갑니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.