javascript - 在javascript中访问json数据出现奇怪的错误

标签 javascript arrays json

我从网络服务返回 json 字符串,我可以轻松访问它,但有时它的行为很奇怪,我找不到原因。 这是我通过网络服务获取的 json 字符串

{"current":"2014-10-07T17:53:03+02:00","T1":{"0":[null],"1":[null],"2":[null],"3":[null],"4":[null],"5":[null],"6":[{"name":"ABC","value":63}]},"T2":{"0":[null],"1":[null],"2":[null],"3":[null],"4":[null],"5":[null]},"T3":{"0":[null],"1":[null],"2":[null],"3":[null],"4":[null],"5":[null]},"T4":{"0":[null],"1":[null],"2":[null],"3":[null],"4":[null],"5":[null]},"T5":{"0":[null],"1":[null],"2":[null],"3":[null],"4":[null],"5":[null]}}

我可以轻松访问它们,并且工作正常,除非任何 T1、T2、T3...等的第 0 个位置为空。它返回此错误TypeError:无法读取未定义的属性'0'

这就是我访问数据的方式

    if(json.T1 != undefined) {
        for (var i = 0; i < len; i++) {
            if(json.T1[i][0] == null) {
                t1.push(NaN)
            }
            else
            {
                t1.push(json.T1[i][0]["value"])
            }
        }
     }

我不明白为什么这在所有情况下都有效,除了 T1、T2...等的第 0 个位置为空

最佳答案

你必须改变一些事情。 试试这个方法:http://jsfiddle.net/csdtesting/jww96u92/

var k = {
  "current": "2014-10-07T17:53:03+02:00",
  "T1": {
    "0": [null],
    "1": [null],
    "2": [null],
    "3": [null],
    "4": [null],
    "5": [null],
    "6": [{
      "name": "ABC",
      "value": 63
    }]
  },
  "T2": {
    "0": [null],
    "1": [null],
    "2": [null],
    "3": [null],
    "4": [null],
    "5": [null]
  },
  "T3": {
    "0": [null],
    "1": [null],
    "2": [null],
    "3": [null],
    "4": [null],
    "5": [null]
  },
  "T4": {
    "0": [null],
    "1": [null],
    "2": [null],
    "3": [null],
    "4": [null],
    "5": [null]
  },
  "T5": {
    "0": [null],
    "1": [null],
    "2": [null],
    "3": [null],
    "4": [null],
    "5": [null]
  }
};
var t1 = [];
console.log(k);
if (k.T1 != undefined) {
  $.each(k.T1, function(i, item) {
    if (item[0] == null) {
      t1.push(NaN)
    } else {
      alert("I just put " + item[0]["value"] + "in t1 array!Thanks!");
      t1.push(item[0]["value"])
    }
    console.log(item);
  });
  console.log(t1);

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - 在javascript中访问json数据出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26240448/

相关文章:

javascript - 如何通过封装实现验证

javascript - 用 jest 测试函数

javascript - Bootstrap 选项卡正在运行但数据未显示?

python - 在 Python 中将列添加到二维数组

javascript - 查找深度嵌套 JSON 中具有特定名称的所有键

JavaScript 检测不同场景下的八进制值

c - 在 C 中使用递归反转 int 数组

java - 我的 Java 代码出现错误,但我看不出它有什么问题。帮助?

c# - 如何美化 JSON 以在 TextBox 中显示?

java - 如何从 jsonarray 读取值?