Javascript从对象

时间:2018-03-30 16:45:50

标签: javascript

我是一个非常新的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"
        }]
    ]
}

我可以使用以下代码提取TypeBody数据,其中列出了网页上的所有项目。

$.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>`)
                });
            });
        })

我正在努力做的是获取用户的姓名user1user2等,并将其替换为“新发件人”,以便将来自用户的所有消息组合在一起自己的div。我看过Object.keys,但这似乎不正确。

我也知道由于中间的$.each(message, function(index, item),附加到html无法正常工作。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您提供的JSON无效,但我清理了它。您应该能够在第一个循环中使用index来获取名称:

Here's an example

您可以始终console.log任意循环中的当前元素,以确切了解您可以使用的内容

enter image description here