d3 js-загрузка json без http get
Я учусь d3. Есть определенные способы загрузки данных в d3 js. Но все они, похоже, делают HTTP GET. В моем сценарии у меня уже есть данные json в строке. Как я могу использовать эту строку вместо того, чтобы сделать другой http-запрос? Я попытался найти документацию для этого, но не нашел ни одного.
это работает:
d3.json("/path/flare.json", function(json) {
//rendering logic here
}
теперь, если у меня есть:
//assume this json comes from a server (on SAME DOMAIN)
var myjson = '{"name": "flare","children": [{"name": "analytics","children": [{"name": "cluster","children": [{"name": "MergeEdge", "size": 10 }]}]}]}';
Как использовать уже вычисленный 'myjson' в d3 и избежать асинхронного вызова на сервер? Спасибо.
3 ответа:
просто заменить
d3.json
вызов сjson = JSON.parse( myjson );
IE:
var myjson = '{"name": "flare","children": [{"name": "analytics","children": [{"name": "cluster","children": [{"name": "MergeEdge", "size": 10 }]}]}]}'; // d3.json("/path/flare.json", function(json) { #delete this line json = JSON.parse( myjson ); //add this line //rendering logic here //} #delete this line
обновление 09/2013
исходный код был изменен. Так имя_переменной
json
должно бытьroot
:// d3.json("flare.json", function(error, root) { #delete this line root = JSON.parse( myjson ); //add this line //rendering logic here //} #delete this line
:
http://phrogz.net/JS/d3-playground/#StockPrice_HTML
здесь они хранят данные графика в переменной $data и устанавливают его через.данные функции($данных).
Я бы применил этот метод к любому графику, который вы используете.
ответ от chumkiu отлично сработал для меня, но мне понадобилось несколько настроек - в последней версии пузырьковой диаграммы d3 вам нужно определить root, а не json, как в
root = JSON.parse( myjson );
кроме того, вы можете заменить "root" на "json" в остальной части кода, конечно. : -)
для тех, кто приходит к этому ответу с вопросами о деревьях узлов D3, которые используют локальные наборы данных, этот ответ отлично сработал для меня - большое спасибо участникам этого страница.