外部JSONファイルのロードからローカルjson文字列への移行に問題があります。最初は、d3.json()が$ .getJSON()の内部でJSON.parse()を使用していたのと同じJSON配列を返したようですが、同様のように見えますが、d3.jsonが " ID "変数をJSONデータに追加します。 Sankey Graph in D3を構築するときにはかなり重要なようです。また、$ .getJSON()とJSON.parse()を使用して正確に同じデータを使用すると、このID要素はまったく同じ出力呼び出しに存在しません。 D3は意図的にデータに「ID」要素を追加しますか? JSON.parse()で同じ結果を得るにはどうすればよいですか?d3.json()とJSON.parse()は同じ結果を生成しますか?
ので、視覚的に、にconsole.log(mygraph)呼び出しの出力は次のように表示されます:
Object {source: Object, target: Object, value: "0", path: "path#0", dy: 0}
dy:0
id:0
path:"path#3"
source:Object
sy:0
target:Object
ty:0
value:"0"
__proto__:Object
しかし、にconsole.log(mygraph)コールで後者の方法は次のように表示されます:
Object {source: Object, target: Object, value: "0", path: "path#0", dy: 0}
dy:0
path:"path#3"
source:Object
sy:0
target:Object
ty:0
value:"0"
__proto__:Object
この「ID」は正確に何であり、後者の方法を使って取得するにはどうすればよいですか?実際には、ローカルJSON変数をD3にロードするにはどうすればよいですか?
'd3.json'はレスポンスに' id'属性を追加しません。実際はコードは基本的に 'return JSON.parse(xhr.responseText);' – reptilicus
@RuuRuuです。これをまだ認識していますが、StackOverflowでは、人々があなたの質問に答えるのに時間がかかるとき、そして答えが満足できるものなら、それを受け入れるか(答えの隣にあるチェックマークをクリックして)、それをupvoteします。あなたはそれをやったことがないようです。 – meetamit
いい考えはありませんでした。知らせてくれてありがとうございます! –