Javascript jQuery处理JSON响应
我从服务器响应中得到以下信息:Javascript jQuery处理JSON响应,javascript,jquery,json,Javascript,Jquery,Json,我从服务器响应中得到以下信息: {"invalid_emails":["adsasdasd"],"result":"success","valid_emails":["jobs@apple.com"]} 但这是错误吗 $.ajax({ type: 'POST', url: '/users/invitation', data: $('#user_invitation_new')
{"invalid_emails":["adsasdasd"],"result":"success","valid_emails":["jobs@apple.com"]}
但这是错误吗
$.ajax({
type: 'POST',
url: '/users/invitation',
data: $('#user_invitation_new').serialize(),
success: function(e) {
jsonObject = jQuery.parseJSON(e);
jsonObject.valid_emails
jsonObject.invalid_emails
我收到以下错误:Uncaught TypeError:无法读取null属性“valid_emails”您可能不必解析该JSON,因为它已经是一个JSON对象。试着做
var emails = e.valid_emails;
如果这仍然不起作用,请在
.ajax()
声明中包含数据类型:“json”
。如果服务器使用json进行响应,则必须运行jQuery.parseJSON(e)代码>。e
参数可能已经是about,因此请尝试以下方法以获得成功处理程序:
success: function(e)
var valEmails = e.valid_emails,
invalEmails = e.invalid_emails;
};
正如Jason和Jonathon提到的,您不应该手动反序列化JSON。根据您使用的jQuery版本,jQuery将根据响应的内容类型头自动反序列化JSON。因此,您可能正在尝试$.parseJSON()一个已经是对象的东西,而不是JSON字符串
为了确保jQuery为您自动反序列化,请向$.ajax()调用添加一个dataType
参数:
试着包括
dataType: 'json',
你能阅读其他属性吗?+1用于指出内容类型标题——真的帮了我大忙!!
dataType: 'json',