D3 js-chargement de json sans HTTP get
J'apprends d3. Il y a certaines façons de charger les données dans D3 js. Mais tous semblent faire un HTTP GET. Dans mon scénario, j'ai déjà les données json dans une chaîne. Comment puis-je utiliser cette chaîne au lieu de faire une autre requête http? J'ai essayé de chercher de la documentation pour cela mais j'en ai trouvé aucune.
Cela fonctionne:
d3.json("/path/flare.json", function(json) {
//rendering logic here
}
Maintenant, si j'ai:
//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 }]}]}]}';
Comment utiliser 'myjson' déjà calculé dans d3 et éviter un appel asynchrone au serveur? Grâce.
3 réponses
Remplacez simplement d3.json
par
json = JSON.parse( myjson );
EXEMPLE:
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
Mise à JOUR 09/2013
Le code Original a changé. Donc varname json
devrait être root
:
// d3.json("flare.json", function(error, root) { #delete this line
root = JSON.parse( myjson ); //add this line
//rendering logic here
//} #delete this line
Selon cet exemple:
Http://phrogz.net/JS/d3-playground/#StockPrice_HTML
Ici, ils stockent les données du graphique dans la variable $ data, et le définissent via le .fonction de données ($data).
J'appliquerais cette méthode à n'importe quel graphique que vous utilisez.
La réponse de chumkiu a bien fonctionné pour moi mais a eu besoin de quelques réglages - dans la dernière version du graphique à bulles D3, vous devez définir root plutôt que json, comme dans
root = JSON.parse( myjson );
Alternativement, vous pouvez remplacer " root "par" json " dans le reste du code Bien sûr. :-)
Pour tous ceux qui viennent à cette réponse avec des questions sur D3 node-link trees qui utilisent des ensembles de données locaux, cette réponse a très bien fonctionné pour moi-un grand merci aux contributeurs sur cette page.