我试图从下面提供的JSON文件中获取一个特定值。这是我的代码。我能够获取所有Month数据并将其存储到名为processed_json
的数组中,并且我在从所有地图中获取特定值D
时遇到问题。
var processed_json=new Array();
var processed_json1=new Array();
$.getJSON("stack.json", function(data) {
for (i = 0; i < data.Sheet1["Month"].length; i++){
processed_json.push(data.Sheet1["Month"][i]);
processed_json1.push(processed_json["D"]);
}
}
所有地图中的D值必须存储在数组中
答案 0 :(得分:2)
我会使用Array.prototype.map:
var result = data.Sheet1.Month.map(function(obj){
return Object.values(obj)[0]['D'];
});
新过滤器要求
var result = data.Sheet1.Month.filter(function (month) {
return Object.keys(month)[0] !== 'BL';
}).map(function(obj){
return Object.values(obj)[0]['D'];
});
答案 1 :(得分:0)
您正确执行循环结果,并已将每个条目保存在&#34;月&#34;将JSON部分转换为 processed_json 变量
因此,当您引用data.Sheet1 [&#34; Month&#34;] [i]时,您会得到对此条目的引用:
{"BL" : {
"A" : 42,
"B" : 19,
"C" : 20,
"D" : 11,
"E" : 22,
"F" : 44,
"G" : 76,
"H" : 12
}
}
所以剩下的唯一步骤是引用这个对象,然后引用一个字段D.你可以在object.field形式或对象[&#34;字段&#34;]中进行此操作。
for (i = 0; i < data.Sheet1["Month"].length; i++){
var entry = data.Sheet1["Month"][i];
for(var key in entry){
if(key == "BL"){
break;
}
var D = entry[key].D;
processed_json1.push(D);
}
}
答案 2 :(得分:0)
processed_json
是一个数组,因此它没有D
属性,您必须在 processed_json
内获取元素才能访问D
。
var processed_json=new Array();
var processed_json1=new Array();
$.getJSON("stack.json", function(data) {
for (i = 0; i < data.Sheet1["Month"].length; i++){
var value = data.Sheet1["Month"][i];
processed_json.push(value);
processed_json1.push(value["D"]);
}