在服务器的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
?
答案 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数据格式时,您可以通过两种方式处理数据。
请参阅以下示例:
返回数据字符串:
{"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);
});