2017-03-07 8 views
-2

아래 JSON 문자열이 있습니다. 유감스럽게도 파일의 id-dashes는 선택 사항이 아니며 구문도 마찬가지입니다. JavaScript/Node로 "dd"값을 추출하고 싶습니다. This_info_is_needed 및 This_info_is_needed_2 : 등JSON에서 값 추출

{ 
    "a-id":{ 
     "b-id":"random", 
     "bb-id":"random", 
     "bbb-id":"random", 
     "bbbb-id":{ 
     "c":[ 
      { 
       "d":"random", 
       "dd":"This_info_is_needed" 
      }, 
      { 
       "d":"random", 
       "dd":"This_info_is_needed" 
      }, 
      { 
       "d":"random", 
       "dd":"This_info_is_needed" 
      }, 
      { 
       "d":"random", 
       "dd":"This_info_is_needed_2" 
      } 
     ] 
     }, 
     "bbbbb-id":"random", 
     "bbbbbb-id":"random" 
    } 
} 

I가 lodash JQuery와 같은 추가 헬퍼를 사용하여 개방 될 것이다

출력으로 배열되어야한다.

미리 감사드립니다.

+1

당신은 어떤 종류의 아웃 출력을 원하는가? 그것은 어떻게 생겼을까요? – Josh

+0

정말 중요하지 않습니다. 결국에는 키 "dd"의 고유 한 값을 가진 배열을 갖는 것이 좋습니다. – AppRoyale

답변

1

키가 dd 인 경우 데이터를 깊게 검색하고 반환 할 사용자 정의 함수를 만들 수 있습니다. for...in 루프를 사용합니다. 당신이 값에만 관심 만도 만이 할 수 있다면

var obj = {"a-id":{"b-id":"random","bb-id":"random","bbb-id":"random","bbbb-id":{"c":[{"d":"random","dd":"This_info_is_needed"},{"d":"random","dd":"This_info_is_needed"},{"d":"random","dd":"This_info_is_needed"},{"d":"random","dd":"This_info_is_needed"}]},"bbbbb-id":"random","bbbbbb-id":"random"}} 
 

 
function getDD(data) { 
 
    var result = [] 
 
    for(var i in data) { 
 
    if(i == 'dd') result.push(data[i]) 
 
    if(typeof data[i] == 'object') result.push(...getDD(data[i])) 
 
    } 
 
    return result 
 
} 
 

 
console.log(getDD(obj))

0

:

var obj = {"a-id":{"b-id":"random","bb-id":"random","bbb-id":"random","bbbb-id":{"c":[{"d":"random","dd":"This_info_is_needed"},{"d":"random","dd":"This_info_is_needed"},{"d":"random","dd":"This_info_is_needed"},{"d":"random","dd":"This_info_is_needed"}]},"bbbbb-id":"random","bbbbbb-id":"random"}}; 
 

 
var desiredResults = obj['a-id']['bbbb-id']['c'].map(function(data){return data.dd}); 
 

 
console.log(desiredResults);