6
votes

d3.json: "Centré TypeError: impossible de lire les" enfants "de la propriété non définie"

J'essaie D3 comme outil de représentation des données biologiques.

J'essaie d'ouvrir l'exemple suivant dans mon navigateur chrome afin que je puisse comprendre comment cela fonctionne. Malheureusement, je reçois l'erreur suivante "Company TypeError: impossible de lire les" enfants "de la propriété non définie".

http: // bl .ocks.org / 4063550

Si vous cliquez sur le lien, le code source du fichier .html et le fichier .json sont affichés ci-dessous la sortie de la visualisation. Il est clair que la visualisation fonctionne sur la page ci-dessus. Je ne suis pas sûr de ce que je pouvais faire de mal.

J'ai copié à la fois le fichier index.html et le fichier flare.json à un répertoire sur un serveur Web. Si j'ai essayé de le charger à partir d'un fichier local, j'ai eu une autre erreur: xmlhttprequest ne peut pas charger le fichier: /// c: / users / (.. .. ..) /fflare.json. Les demandes d'origine croisée ne sont prises en charge que pour http.

Le fichier flare.json peut en effet être chargé à partir du serveur Web (je peux voir son contenu texte). Il contient les données d'arborescence que j'essaie de graphiquement.

Clairement le fichier flare.json commence comme suit:

{ "nom": "flare", "enfants": [ ...

Malheureusement d3.json a du mal à analyser ces informations ...

Si cela aide, voici le fichier .html que j'essaie Pour ouvrir en chrome: xxx

et, voici le fichier flare.json: xxx


0 commentaires

5 Réponses :


8
votes

Pour que cela fonctionne, je devais remplacer la ligne xxx

avec xxx

J'ai utilisé mon intuition ici et je Je ne comprend toujours pas comment cela a fonctionné sur l'exemple du site Web et non de la mienne, ni quelle est la véritable signification de mon changement dans le code. Si vous savez comment répondre à cela de manière plus approfondie, veuillez contribuer et j'accepterai votre réponse.


1 commentaires

J'ai essayé en supprimant l'erreur également, il montre la même erreur. Tout ce que vous avez changé alors



6
votes

Le code est de d3.v3 mais il pointe vers D3.v2, ce qui n'utilise pas l'appel d'erreur dans la fonction D3.JSON.


0 commentaires

1
votes

C'est parce que l'objet JSON retourné est reçu par le premier paramètre de la fonction. Cela pourrait en raison des versions de D3.


0 commentaires

0
votes

avait la même erreur exacte. La solution est assez simple: Vous ne fournissez pas une matrice d'objet JSON. Vous avez dit que votre JSON a commencé comme suit:

{"nom": "flare", "enfants": [...

S'il vous plaît changer afin que le changement commence comme suit:

[{"nom": "flare", "enfants": [...}]

de cette façon D3 sera en mesure de localiser le "premier enfant "


1 commentaires

@david I aussi avoir la même erreur et j'ai essayé votre réponse, il n'y a pas de changement dans l'erreur.



-2
votes
<script>
        function liveProject() {
           var  a=200;
           this. x=600;
           this. y=300;
           this. z= function () {
               return this.x+this.y;
           }
        }
        var lp=new liveProject();
        document.write(lp.z());
    </script>

0 commentaires