从JSON对象中提取数据

时间:2015-08-07 15:29:10

标签: javascript json object

我试图从此JSON返回中提取文本:

{
 "threaded_extended": {},
 "messages": [
    {
        "body": {
            "parsed": "the network. Take a moment to welcome Jason.",
            "plain": " network. Take a moment to welcome Jason.",
            "rich": "Jason."
        },
        "thread_id": 56,
        "client_type": "Wb",
        "client_url": "https://www.yammer.com/",
        "system_message": true,
        "direct_message": false,
        "chat_client_sequence": null,
        "language": "en",
        "notified_user_ids": [],
        "system_message_properties": {
            "subtype": "created_membership"
        },
        "privacy": "public",
        "attachments": [],
        "liked_by": {
            "count": 0,
            "names": []
        },
        "content_excerpt": " Jason.",
        "group_created_id": null
    }
]

} 我的函数看起来像这样,但它一直说未定义 - 抱歉,如果这是一个愚蠢的问题,我的逻辑是对象是值,然后消息是一个属性,然后普通应该是一个属性。我做了些蠢事吗?感谢任何帮助

function getData(returnData){
    $.each(returnData, function(key, value){
        if(value != undefined){
            $('#test').append(value.messages.plain);
        }
    });
}

2 个答案:

答案 0 :(得分:2)

 $('#test').append(value.messages[0].plain);

messages是一个数组,因此您需要提供一个索引。

编辑:我认为returnData是一个数组,如果不是你正在循环错误的对象。循环遍历returnData.messages。得到value.body.plain

答案 1 :(得分:1)

通过returnData.messages迭代对象中的数组。然后,您可以访问数组中的每个消息项,而普通值在body.plain上为每个值

function getData(returnData){
    $.each(returnData.messages, function(key, value){
        if(value != undefined){
            $('#test').append(value.body.plain);
        }
    });
}