我在从Ajax JSON调用中过滤返回的数据时遇到问题。现在,它返回:
{"results":[{"text":"RoboChat: What is it like to feel?","username":"RoboChat","createdAt":"2014-06-04T20:01:15.268Z","updatedAt":"2014-06-04T20:01:15.268Z","objectId":"wG2cs1OnVY"},
我试图让它只返回“text”对象,如下所示:
"RoboChat:What is it like to feel?"
这是我的代码:
function fetch () {
$.ajax({
url:"https://api.parse.com/1/classes/chats",
type : 'GET',
dataType : 'JSON',
data : JSON.stringify({
}),
success:function(data) {
$('.messages').append("<li>" + (JSON.stringify(data)) + "</li>")
}
});
};
我已经尝试将过滤器传递给JSON.stringify,但没有成功,我甚至不确定这是否是接近过滤数据的方法。任何帮助都会非常感激。谢谢!
答案 0 :(得分:2)
返回的JSON有一个results
属性是一个数组,你可以遍历数组并读取每个元素的text
属性:
$.each(data.results, function(index, element) {
console.log(element.text);
});
要为每个数组的元素创建li
元素,您可以使用$.map
实用程序函数:
var li = $.map(data.results, function(element) {
return '<li>' + element.text + '</li>';
});
$('.messages').append(li);
答案 1 :(得分:2)
您无法真正更改请求返回的内容,但您当然可以以任何方式使用结果值。由于响应包含多个具有text
属性的对象,因此您必须迭代它们并提取文本:
success: function(data) {
var results = data.results;
results.forEach(function (result) {
$('.messages').append("<li>" + result.text + "</li>");
});
}
答案 2 :(得分:0)
尝试,数据有一个名为results的数组,你必须选择第一个如下:
success: function(data) {
var results = JSON.parse(data).results;
results.forEach(function (result) {
$('.messages').append("<li>" + data.results[0].text + "</li>");
});
}