从JSON获取参数

时间:2013-09-27 03:50:33

标签: javascript json

在服务器的data中,我得到以下JSON:

{
    "response": {
        "upload_url": "http:\/\/cs9458.vk.com\/upload.php?act=do_add&mid=6299927&aid=-14&gid=0&hash=73e525a1e2f4e6a0f5fb4c171d0fa3e5&rhash=bb38f2754c32af9252326317491a2c31&swfupload=1&api=1&wallphoto=1",
        "aid": -14,
        "mid": 6299927
    }
}

我需要upload_url。我在做:

function (data) {
    var arrg = JSON.parse(data);
    alert(data.upload_url);
});

但它不起作用(警报未显示)。

如何获取参数upload_url

4 个答案:

答案 0 :(得分:6)

看起来您需要访问arrg,而不是数据。您还需要访问“回复”#39;先关键。

function (data) {
    var arrg = JSON.parse(data);
    alert( arrg.response.upload_url);
}

答案 1 :(得分:1)

如果响应是在json而不是字符串,那么

alert(response.id);

alert(response['id']);

,否则

var response = JSON.parse('{"id":"2231f87c-a62c-4c2c-8f5d-b76d11942301"}');
response.id ; //# => 2231f87c-a62c-4c2c-8f5d-b76d11942301

答案 2 :(得分:1)

这里有几个正确的答案,但有一个触发器决定你应该如何处理你的返回数据。

当您使用ajax请求并使用JSON数据格式时,您可以通过两种方式处理数据。

  1. 在返回时将数据视为JSON
  2. 通过添加dataType
  3. 为JSON配置ajax调用

    请参阅以下示例:

    返回数据字符串:

    {"color1":"green","color2":"red","color3":"blue"}
    

    没有dataType的ajax调用:

    $.ajax({
        method: "post",
        url: "ajax.php",
        data: data,
        success: function (response) {
            var data = JSON.parse(response);
            console.log(data.color1); // renders green
            // do stuff 
    
        }
    });
    

    ajax调用dataType:

    $.ajax({
        method: "post",
        url: "ajax.php",
        dataType: "json", // added dataType
        data: data,
        success: function (response) {
            console.log(response.color1); // renders green
            // do stuff 
        }
    });
    

    在您的情况下,您可能在已为JSON配置调用时使用了JSON.parse()。希望这能使事情变得清晰。

答案 3 :(得分:0)

您的代码有一个小错误。尝试:

function (data) {
   var arrg = JSON.parse(data);
   alert(arrg.response.upload_url);
});