我已经使用json.stringify将字符串temp转换为Json字符串然后oar控制台.log(b_json.x)的输出未定义。 ? 这是我的boys.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 :(得分:0)
您对JSON的使用完全没用;你将字符串转换回自身。
您实际上只是想要filter
。
答案 1 :(得分:0)
当你使用JSON.parse(t)将t转换为x时,然后将boys.json转换为javascript对象。然而,当你检查b_json.x时,你要求得到&#34; x&#34;来自b_json的属性 - 它很可能没有名为x的属性。尝试使用console.log(b_json)来查看对象中的内容。
答案 2 :(得分: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]);
}
}