2016-06-01 13 views
-1

いくつかの外部jsonデータを変数または単一のjsonファイルにインポートして、そのデータをD3で表示する必要があります。JavaScriptオブジェクトを新しいオブジェクトに変換するにはどうすればよいですか?

{ 
     "name": "name1", 
     "version": "0.1.2", 

     "references": [ 
     { 
      "url1": "http://example1.com" 
     }, 
     { 
      "url2": "http://example2.com" 
     } 
     ] 
    } 

そして、これは私が最終的にJSONファイル/変数のために必要なデータの形式である:

これは、私は、各JSONファイルからインポートする必要があるデータの形式です。

{ 
     "nodes":[ 
     { 
      "name": "name1", 
      "version": "0.1.2", 
      "references": [ 
      { 
       "url1": "http://example1.com" 
      }, 
      { 
       "url2": "http://example2.com"" 
      } 
      ] 
     }, 

     { 
      "name": "name2", 
      "version": "1.6.0", 
      "references": [ 
      { 
       "url1": "http://example34.com" 
      }, 
      { 
       "url2": "http://example30.com"" 
      } 
      ] 
     }, 
     { 
      ... 
      ... 
     } 
     ], 
     "links":[ 
     ] 
    } 

"nodes"配列内の異なるjsonファイルのデータを基本的にマージする必要があります。

どうすればいいですか? ありがとう

+2

を私はそのトピックを複製しているとは思わないが、彼が実際に求めていることは、複数のJSONファイルを1つに...? – chrisv

+0

正確には重複していません...ここのOPの問題は異なります。 –

+0

あなたの権利、詐欺ではありません。 Soooo ...何を試しましたか?何か?どのようにxがyに変換されるかはわかりません – Liam

答えて

2

nodesは単純な配列なので、 'ファイル'オブジェクトをnodes配列にプッシュするだけです。

var file1 = { 
 
    "name": "name1", 
 
    "version": "0.1.2", 
 
    "references": [ 
 
     { 
 
      "url1": "http://example1.com" 
 
     }, 
 
     { 
 
      "url2": "http://example2.com" 
 
     } 
 
    ] 
 
} 
 

 
var file2 = { 
 
    "name": "name1", 
 
    "version": "0.1.2", 
 
    "references": [ 
 
     { 
 
      "url1": "http://example1.com" 
 
     }, 
 
     { 
 
      "url2": "http://example2.com" 
 
     } 
 
    ] 
 
} 
 

 
var files = [file1, file2]; 
 

 
var node = { 
 
    "nodes": [], 
 
    "links": [] 
 
} 
 

 
files.forEach(function(file) { 
 
    node.nodes.push(file); 
 
}) 
 

 
console.log(node);

+0

ありがとうMarc!私はこれが私のために働くはずだと思います!私は今それを試してみましょう。 – faia20

+0

それは働いた!ありがとうございましたマーク! – faia20

+0

@ faia20 Glad。 Yw。 –

0

あなたは、単にnodesにインポートJSONからすべてのデータをプッシュする必要がある場合は、これを行うことができます:ここで

var imported = { 
    "name": "name1", 
    "version": "0.1.2", 
    "references": [ 
     { 
      "url1": "http://example1.com" 
     }, 
     { 
      "url2": "http://example2.com" 
     } 
    ] 
}; 

var finalJson = { 
    nodes: [] 
}; 

finalJson.nodes.push(imported); 

はフィドルです:https://jsfiddle.net/vj1nqeu5/1/

関連する問題