使用jQuery从JSON树中读取特定值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jQuery从JSON树中读取特定值相关的知识,希望对你有一定的参考价值。

我正在尝试从下面提供的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值存储到数组中

THIS IS THE JSON FILE

答案

我会使用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'];
});    
另一答案

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"]);
}
另一答案

您正确执行循环结果,并已将JSON的“月”部分中的每个条目保存到processed_json变量中

因此,当您引用data.Sheet1 [“Month”] [i]时,您将获得对此条目的引用:

{"BL" : {
    "A" : 42,
    "B" : 19,
    "C" : 20,
    "D" : 11,
    "E" : 22,
    "F" : 44,
    "G" : 76,
    "H" : 12
  }
}

因此,剩下的唯一步骤是引用此对象,然后引用字段D.您可以在object.field形式或object [“field”]中执行此操作。

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

以上是关于使用jQuery从JSON树中读取特定值的主要内容,如果未能解决你的问题,请参考以下文章

从 C# 中的 JSON 读取特定值

从 Apollo 缓存中读取特定类型的所有片段

如何从 JSON 树中检索特定的 id

如何在 JQuery 中将 json 响应读取为名称值对

如何使用Javascript读取json文件并将特定键的值写入同一json文件中?

从 S3 读取大型 JSON 文件 (3K+) 并从数组中选择特定键