Chargement du fichier json sur d3.js

J'ai utilisé la force.js de d3 à des fins de visualisation.

Voici l'extrait de js complet:

d3.json("test.json", function(json) { force.nodes(json.nodes) .links(json.links) .start(); }); 

Le fichier test.json se trouve actuellement au même endroit que celui du fichier js. Ça marche bien. Les fichiers se trouvent dans le dossier «pages» de mon application Web. Si j'utilise l'URL http "http: // localhost: 8084 / FMS / faces / pages / test.json" au lieu de "test.json", cela fonctionne bien. Mais si j'utilise "/Users/subashbasnet/test.json", c'est-à-dire le chemin du fichier au lieu de "test.json", il ne fonctionne pas.

Si je définis la sortie json à var et je l'utilise à la place de "test.json", cela ne fonctionne pas. Par exemple:

  var myjson = "{"nodes":[{"name":"MYriel","group":1},{"name":"Labarre","group":2}],"links":[{"source":1,"target":0,"value":1}]}"; d3.json(myjson, function(json) { force.nodes(json.nodes) .links(json.links) .start(); }); 

Mon fichier .jsp a la sortie suivante:

 <html> <head></head> <body> <pre>{"nodes":[{"name":"MYriel","group":1},{"name":"Labarre","group":2}],"links":[{"source":1,"target":0,"value":1}]}</pre> </body> </html> 

Comment puis-je charger le json dans la <pre> à la place de "test.json".

La solution à l'un ou l'autre du problème est très attendue. Merci d'avance.

Si vous générez les données dans votre JSP, vous pourriez simplement l'avoir fait

 <script>var theData = (<%= unquotedJsonData %>);</script> 

Qui produit un objet JS directement plutôt qu'une chaîne JSON

 <script>var theData = ({"nodes":[...]});</script> 

Ensuite, vous n'avez pas besoin d'utiliser l'analyseur json de d3, il suffit de faire

 force.nodes(theData.nodes).... 

Utilisez des guillemets simples pour citer votre chaîne json

 var myjson = '{"nodes":[{"name":"MYriel","group":1},{"name":"Labarre","group":2}],"links":[{"source":1,"target":0,"value":1}]}'; 

Ou échapper aux guillemets doubles

 var myjson = "{\"nodes\":[{\"name\":\"MYriel\",\"group\":1},{\"name\":\"Labarre\",\"group\":2}],\"links\":[{\"source\":1,\"target\":0,\"value\":1}]}"; 

Votre fichier jsp doit afficher uniquement la chaîne json

 {"nodes":[{"name":"MYriel","group":1},{"name":"Labarre","group":2}],"links":[{"source":1,"target":0,"value":1}]}