2017-02-21 131 views
0

我已經使用json.stringify將字符串temp轉換爲Json字符串,然後oar console.log(b_json.x)的輸出未定義。 ? 這是我boys.json文件無法轉換爲Json字符串

{ 
    "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":"" 

    }, 
} 

這是我boys.js文件 -

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

有沒有想過使用數組? – Adam

+0

請大家看看[如何調試JavaScript](http://stackoverflow.com/q/988363/215552)。仔細檢查每個變量。注意控制檯中的錯誤。嘗試一下,看看它們是否有效。 –

回答

0

當您使用JSON.parse(t)將t轉換爲x時,這會將什麼是boys.json轉換爲JavaScript對象。然而,當你檢查b_json.x時,你需要從b_json中獲取「x」屬性 - 它很可能沒有一個名爲x的屬性。嘗試console.log(b_json)來查看對象中的內容。

0

您使用JSON是完全無用的;你正在將一個字符串轉換回自己。

你其實只想要b_json['b' + i]

+0

這是正確的答案 –

0

爲什麼你需要JSON.parse或Stringify這裏。 你可以直接試試嗎?

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]); 
    } 
}