framework examples javascript json d3.js bubble-chart

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