javascript - examples - d3 js-cargando json sin un http
jquery d3 (3)
De acuerdo con este ejemplo:
http://phrogz.net/JS/d3-playground/#StockPrice_HTML
Aquí están almacenando los datos del gráfico dentro de la variable $ data, y configurándolos a través de la función .data ($ data).
Aplicaría este método al gráfico que estés usando.
Estoy aprendiendo d3. Hay ciertas formas de cargar los datos en d3 js. Pero todos parecen hacer un HTTP GET. En mi caso, ya tengo los datos json en una cadena. ¿Cómo puedo usar esta cadena en lugar de hacer otra solicitud http? Intenté buscar documentación para esto pero no encontré ninguna.
Esto funciona:
d3.json("/path/flare.json", function(json) {
//rendering logic here
}
Ahora, si tengo:
//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 }]}]}]}'';
¿Cómo uso el ''myjson'' ya computado en d3 y evito una llamada asincrónica al servidor? Gracias.
La respuesta de chumkiu funcionó muy bien para mí, pero necesitaba un par de ajustes: en la última versión del gráfico de burbujas d3, debe definir root en lugar de json, como en
root = JSON.parse( myjson );
Alternativamente, puede reemplazar "raíz" por "json" en el resto del código, por supuesto. :-)
Para cualquiera que llegue a esta respuesta con preguntas sobre los árboles de enlace de nodo d3 que utilizan conjuntos de datos locales, esta respuesta funcionó muy bien para mí, muchas gracias a los colaboradores en esta página.
Simplemente reemplace la llamada d3.json
con
json = JSON.parse( myjson );
ES DECIR:
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
ACTUALIZACIÓN 09/2013
El código original ha cambiado. Entonces varname json
debería ser root
:
// d3.json("flare.json", function(error, root) { #delete this line
root = JSON.parse( myjson ); //add this line
//rendering logic here
//} #delete this line