使用jquery getjson检索JSON提要?

时间:2018-04-03 16:17:54

标签: javascript jquery json ajax getjson

我一直在使用这段代码太长时间没有解决方案。

它指向的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”,因为那是描述吗?

4 个答案:

答案 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,您有两种方式:

  1. 使用.response.description致电;或
  2. 使用[]response["description"]
  3. 致电

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