我一直在使用这段代码太长时间没有解决方案。
它指向的url包含这个(json对象):
{ "description": "Input 1", "type": "no", "enabled": true, "alarm": false }
$(document).ready(function () {
var data;
$.ajax({
dataType: "json",
url: 'http://192.168.1.2/alarm.cgi',
data: data,
success: function (data) {
// begin accessing JSON data here
console.log(description);
}
});
});
这不应该返回“输入1”,因为那是描述吗?
答案 0 :(得分:2)
data
的值是整个对象,您需要访问description
属性,因此它应该是console.log(data.description);
。
答案 1 :(得分:2)
你的例子中得到Shadowed variable name
,就是不要这样做。
为回调参数response
提供不同的名称,例如:
$(document).ready(function () {
var data;
$.ajax({
dataType: "json",
url: 'http://192.168.1.2/alarm.cgi',
data: data,
success: function (response) {
// begin accessing JSON data here
console.log(response.description);
}
});
});
在此示例中,您将获得response = '{ "description": "Input 1", "type": "no", "enabled": true, "alarm": false }'
并且您可以阅读response
对象中的说明属性:response.description
答案 2 :(得分:2)
如您所见,如果请求成功,则要调用的函数会返回一个名为response
的对象,该对象应以{ "description": "Input 1", "type": "no", "enabled": true, "alarm": false }
作为内容。
要返回一个对象属性,您需要调用对象名称,然后调用其属性。
要返回description
,您有两种方式:
.
:response.description
致电;或[]
:response["description"]
。
var response = { "description": "Input 1", "type": "no", "enabled": true, "alarm": false };
console.log('With ".": ' + response.description);
console.log('With "[]": ' + response["description"]);

答案 3 :(得分:0)
try this
$(document).ready(function () {
var data;
$.ajax({
dataType: "json",
url: 'http://192.168.1.2/alarm.cgi',
data: data,
success: function (data) {
// begin accessing JSON data here
console.log(data[0].description);
}
});
});