2017-03-07 10 views
-2

以下のJSON文字列があります。ファイル内のid - ダッシュは、残念なことにオプションではなく、どちらも構文ではありません。 JavaScript/Nodeで「dd」の値を抽出したいと思います。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" 
    } 
} 

私は出力が持つ配列でなければなりません

など、lodash、jQueryのような任意の追加のヘルパーを使用するオープン次のようになります。This_info_is_neededとThis_info_is_needed_2。

ありがとうございます。

+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);

関連する問題