Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery处理JSON响应_Javascript_Jquery_Json - Fatal编程技术网

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',