2017-02-21 7 views
0

Ich habe die Zeichenfolge temp in Json String mit json.stringify und dann oar konvertiert Die Ausgabe von console.log (b_json.x) kommt undefined. ? Das ist mein boys.json DateiKonnte nicht in Json String konvertieren

{ 
    "b1":{ 

     "attractiveness":"10", 
     "intelligence":"9", 
     "budget":"500", 
     "minAtt":"6", 
     "committed":"false", 
     "girlname":"" 

    }, 
    "b2":{ 

     "attractiveness":"15", 
     "intelligence":"8", 
     "budget":"600", 
     "minAtt":"7", 
     "committed":"false", 
     "girlname":"" 

    }, 
    "b3":{ 

     "attractiveness":"13", 
     "intelligence":"6", 
     "budget":"900", 
     "minAtt":"8", 
     "committed":"false", 
     "girlname":"" 

    }, 
} 

Das ist mein boys.js datei ist

var b_json = require('./boys.json'); 

function utility() { 
    var arr_boys = new Array(3);; 
    for (var i = 1 ; i < arr_boys.length; i++) { 
     var temp = 'b'+i; 
     var t = JSON.stringify(temp); 
     var x = JSON.parse(t); 
     console.log(b_json.x); 
    } 
} 

utility() 
+0

Haben Sie jemals an ein Array gedacht? – Adam

+0

Bitte, für alle, lernen [wie JavaScript zu debuggen] (http://stackoverflow.com/q/988363/215552). Untersuche jede Variable, während du hinein gehst. Achten Sie auf Fehler in der Konsole. Probieren Sie die Dinge aus und sehen Sie, ob sie funktionieren. –

Antwort

0

Wenn Sie t mit Hilfe von JSON.parse (t) in x konvertiert haben, dann verwandelt sich das, was war boys.json, in ein JavaScript-Objekt. Wenn Sie dann nach b_json.x suchen, fragen Sie nach der Eigenschaft "x" von b_json - höchstwahrscheinlich hat sie keine Eigenschaft namens x. Probieren Sie console.log (b_json) aus, um zu sehen, was sich im Objekt befindet.

0

Ihre Nutzung von JSON ist völlig nutzlos; Sie konvertieren eine Zeichenfolge zurück in sich selbst.

Sie wollen eigentlich nur b_json['b' + i].

+0

Dies ist die richtige Antwort –

0

Warum brauchen Sie JSON.parse oder Stringify hier. Kannst du direkt versuchen als?

function utility() { 
    var arr_boys = new Array(3);; 
    for (var i = 1 ; i < arr_boys.length; i++) { 
     var temp = 'b'+i; 
     //var t = JSON.stringify(temp); 
     //var x = JSON.parse(t); 
     console.log(b_json[temp]); 
    } 
} 
Verwandte Themen