2017-02-21 130 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]); 
    } 
}