我是一个非常新的javascript,在加载到网页之前无法从ajax请求中提取数据。
来自ajax请求的数据类似于:
{
"success": {
"user1": [
["2018-01-30", {
"Type": "None",
"Body": "Message 2"
}],
["2018-01-29", {
"Type": "None",
"Body": "Message 1"
}]
],
"user2": [
["2018-01-28", {
"Type": "None",
"Body": "Message 2"
}],
["2018-01-27", {
"Type": "None",
"Body": "Message 1"
}]
],
"user3": [
["2018-01-26", {
"Type": "None",
"Body": "Message 2"
}],
["2018-01-25", {
"Type": "None",
"Body": "Message 1"
}]
]
}
我可以使用以下代码提取Type
和Body
数据,其中列出了网页上的所有项目。
$.ajax(
{
url : '/ajax_get_messages',
type: "GET",
dataType : 'json'
}).done(function(messages)
{
$.each(messages.success, function(index, message)
{
$('#messages').append(`
<div class='message'>New Sender`)
$.each(message, function(index, item)
{
$('#messages').append(`
<p>Date: ${item[0]} | Type: ${item[1]['Type']} | Body: ${item[1]['Body']}</p>
</div>`)
});
});
})
我正在努力做的是获取用户的姓名user1
,user2
等,并将其替换为“新发件人”,以便将来自用户的所有消息组合在一起自己的div。我看过Object.keys,但这似乎不正确。
我也知道由于中间的$.each(message, function(index, item)
,附加到html无法正常工作。有办法解决这个问题吗?
答案 0 :(得分:1)
您提供的JSON无效,但我清理了它。您应该能够在第一个循环中使用index
来获取名称:
您可以始终console.log
任意循环中的当前元素,以确切了解您可以使用的内容