jquery jqXHR responseText将字符串转换为JSON



我有一些responseText,看起来像这样:

[{
        "id": null,
        "partId": 0,
        "name": "5e8c8c89-445e-4033-80db-014a00cc055e.jpg",
        "type": "image/png",
        "size": 2276489,
        "progress": "1.0",
        "url": "/Public/Upload/UploadHandler.ashx?id=5e8c8c89-445e-4033-80db-014a00cc055e.jpg",
        "thumbnail_url": null,
        "delete_url": "/Public/Upload/UploadHandler.ashx?id=5e8c8c89-445e-4033-80db-014a00cc055e.jpg",
        "delete_type": "DELETE",
        "error": null
    }
]

但是我不能在我的完整函数中使用这些数据。我曾尝试使用$将其转换为JSON。parseJSON函数,但虽然我得到一个对象,我不能访问任何项目…

var o = $.parseJSON(jqXHR.responseText);
console.log(o.partId); // returns undefined
有谁能帮我吗?

欢呼,r3plica

JSON响应在顶层有一个Array。你需要做的是:

console.log(o[0].partId);

使用jqXHR.responseJSON:

console.log(jqXHR.responseJSON[0].partId);

如果指定json,则使用jQuery.parseJSON解析响应在作为对象传递给成功处理程序之前。解析后的的responseJSON属性使JSON对象可用jqXHR对象

文档:https://api.jquery.com/jQuery.ajax/

最新更新