所以我有这个ajax代码,它将数组作为字符串返回。我需要显示数组的第一个值或第二个值。像response.total或response [0]。
以下是我在执行console.log(响应)时从响应中获得的内容:
{"total":1,"type":"like"}
这是我的阿贾克斯。
$.ajax({
url: '/pin/like?pinId='+pinId,
type: 'POST',
data: {actionSignature: actionSignature, actionSignatureSeed: actionSignatureSeed},
success: function(response) {
console.log(response[0]);
likeButton.html("<i class='icon-heart'></i> "+likeButton.attr('data-text-'+response[1]));
likeButton.html("<i class='icon-heart'></i> " + response[0]);
likeButton.removeClass('disabled');
},
error: function(response) {
alert('An error occurred, please reload the page and try again.');
}
});
答案 0 :(得分:3)
返回的JSON看起来不像一个数组,它代表一个具有两个属性(总数和类型)的javascript对象。
你确定它是一个字符串而不是实际的对象(控制台通常会以那种眼睛可读的格式呈现它)吗?如果它绝对是一个字符串,那么您可以在页面中包含开源json2.js
文件,并使用类似
var responseObject = JSON.parse(response);
但是,如果它已经返回了对象(很可能就是这种情况),那么您可以使用
访问它的属性response.total
和
response.type
(将返回&#34; 1&#34;和&#34;分别为&#34;
答案 1 :(得分:1)
只需将dataType: 'JSON'
添加到$.ajax
选项即可。这样JSON字符串就会自动转换为javascript对象,您可以使用response.total
和response.type
。
请注意 - 如果您的回复不是JSON字符串,则会触发您error:
部分请求。
答案 2 :(得分:0)
Json以字符串形式返回。你需要解析它。否则响应[0]将只是“{”。然后,您可以使用response.total和response.type访问该对象。
$.ajax({
url: '/pin/like?pinId='+pinId,
type: 'POST',
data: {actionSignature: actionSignature, actionSignatureSeed: actionSignatureSeed},
success: function(response) {
var response = $.parseJSON(response);
likeButton.html("<i class='icon-heart'></i> "+likeButton.attr('data-text-'+response.type));
likeButton.html("<i class='icon-heart'></i> " + response.total);
likeButton.removeClass('disabled');
},
error: function(response) {
alert('An error occurred, please reload the page and try again.');
}
});
答案 3 :(得分:0)
使用此,
likeButton.html("<i class='icon-heart'></i> "+likeButton.attr('data-text-'+response.type));
likeButton.html("<i class='icon-heart'></i> " + response.total);