在我的javascript中,我试图从服务器的JSON文件中读取值。该文件包含一个对象数组,但我无法访问这些对象中的值。当我尝试这个时,我的日志说明值是未定义的。但是,当我尝试在数组中对一个Object进行字符串化时,它的工作原理非常好。我做错了什么?
JSON文件:
{
"NETWORKS": [
{
"NETWORK": {
"STARTDATE": "00:13:33:15:10:2015",
"SSID": "Ziggo323_AC",
"WPA": "YES",
"WEP": "NO",
"WPS": "YES",
"OPEN": "NO",
"WPATEST": {
"DURATION": "3000",
"DATE": "00:11:26:24:09:2015",
"ATTEMPTS": "594",
"STATUS": "FAILED"
},
"WPSTEST": {
"DURATION": "2932",
"DATE": "03:11:28:24:09:2015",
"ATTEMPTS": "9",
"STATUS": "PASSED"
}
}
},
{
"NETWORK1": {
"STARTDATE": "00:15:26:15:10:2015",
"SSID": "FreeWiFi",
"WPA": "NO",
"WEP": "NO",
"WPS": "NO",
"OPEN": "YES"
}
}
]
}
javascript函数
function LoadTestResults() {
$.ajax({
type: 'POST',
url: 'GetJSON.php',
data: "TestResults.json",
dataType: "json",
success: function (data) {
var wpsDuration = data.NETWORKS[0];
console.log(JSON.stringify(wpsDuration)); // output ={"NETWORK":{"STARTDATE":"00:13:33:15:10:2015" etc.
console.log(wpsDuration.WPA); // output = undefined
}
});
}
答案 0 :(得分:2)
试试:
wpsDuration.NETWORK.WPA
或循环:
for (var k in data.NETWORKS) {
var network = data.NETWORKS[k];
var networkKey = Object.keys(network).pop();
console.log(networkKey, network[networkKey].WPA);
}
答案 1 :(得分:0)
在此行debugger;
前加var wpsDuration = data.NETWORKS[0];
并检查data
。
调试时保持控制台处于打开状态。一旦成功将达到 调试器会命中。
然后转到控制台窗口并尝试不同的组合。这将 帮助您理解您的对象。
答案 2 :(得分:0)
我试过,它对我有用
放一个调试器;在此行之前var wpsDuration = data.NETWORKS [0];并检查数据