2015-06-07 5 views
0

Мне нужно загрузить внешний файл JSON с помощью функции d3.json, которая, например, имеет следующий форматДобавление объектов в существующий объект

{"pole":[{"name": "p1"}, {"name":"p2"}]} 

В главном файле, я бы

var MainData ={}; d3.json("url", function(graph){MainData[graph] = graph;}); 

дает мне внешний объект JSON втолкнули внутрь MainData. Но я бы солгал, чтобы иметь доступ к нему как MainData.pole

Также я хотел бы загрузить несколько файлов JSON и вставить их в один и тот же файл MainData.

Я новичок в JS, и я был бы очень признателен за помощь.

ответ

1
var MainData ={}; d3.json("url", function(graph){MainData[graph] = graph;}); 

дает мне внешний объект JSON втолкнули внутрь MainData.

Ну, вроде, но у него есть действительно неудобное имя свойства, скорее всего [object Object], потому что при использовании кронштейнов обозначения так, имя свойства в скобках даются как строки (для теперь ES6 добавляет Symbol s), поэтому любая нестроковая строка, которую вы там помещаете, будет преобразована в строку. По умолчанию результатом вызова toString на простой объект является [object Object].

Но я бы лгать, чтобы иметь возможность получить доступ к нему, как MainData.pole

Предполагая, что d3.json разбирает это для вас, прежде чем давать его вам, то:

var MainData ={}; 
d3.json("url", function(graph) { 
    MainData.pole = graph.pole; 
}); 

Если вы ожидали (что кажется маловероятным), то:

var MainData ={}; 
d3.json("url", function(graph) { 
    MainData.pole = JSON.parse(graph).pole; 
}); 
+0

Это решило его ! Спасибо огромное! – bee247

Смежные вопросы