不知道如何在Javascript / jQuery中解析这个PHP / JSON对象

时间:2013-07-17 21:38:18

标签: php javascript jquery ajax json

所以从我的理解,因为我使用json_encode在PHP中创建了一个JSON对象,然后使用echo来显示它,我可以直接作为JS中的对象访问它,就像这样

.done(function(response) {
    var result = response;
    $(result).hide().prependTo('#messages').fadeIn('slow');
});`

但是,如何访问对象中的数据?我的对象包含error,无论是真还是假,error_message包含格式为<li>error</li>的错误

PHP返回 - {"error":true,"error_messages":" <li>Name too short (minimum of 4 characters)<\/li> <li>Name too short (minimum of 4 characters)<\/li>"}

2 个答案:

答案 0 :(得分:3)

如果您的服务器返回正确的Content-Type标题(application/json),jQuery将为您解析响应并为您提供一个对象,您可以这样使用:

console.log(response.error_messages); // "<li>Name too short...

如果您的服务器未返回正确的Content-Type标题,则可以通过提供

来强制解决问题
dataType: "json"
$.ajax来电中

无论哪种方式,您在问题评论中引用的JSON都是有效的。

所以可能是你想要的:

if (response.error) {
    $(response.error_messages).hide().prependTo('#messages').fadeIn('slow');
}
else {
    // whatever you show when it's successful
}

但请注意,#messages 必须menuulol元素,因为您的error_message定义了li element

答案 1 :(得分:1)

你应该能够像平时那样将它用作对象。 E.g:

result.error; // true or false
result.error_messages; // the error messages

您可能需要解析它,但jQuery(它看起来像您正在使用)可能会为您做到这一点。如果没有,请使用JSON.parse

var myobj = JSON.parse(result);