在我的 javascript 中,我试图从服务器的 JSON 文件中读取值。该文件包含一个对象数组,但我无法访问这些对象中的值。当我尝试此操作时,我的日志显示该值未定义。但是,当我尝试对数组中的对象进行字符串化时,它工作得很好。我做错了什么?
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
}
});
}
最佳答案
尝试一下:
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);
}
关于javascript - 无法在 JavaScript 中访问 JSON 数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165128/