0

我试图访问 json 字符串的电子邮件部分

{"email":"请输入有效的电子邮件地址","pass":"请输入您的密码"}"

它传递给这样的函数

postActor: function(){
    var self = checkLogin;
        $.ajax({
        data: self.config.form.serialize(),
            success: function(results) {
            if(results){
                        console.log({results: email});      
            alert('this should worlk');
                } else {
                                   alert('this isn't working');
                }
            }
        });
    },

它让我发疯,有人可以指出我做错了什么。谢谢

4

3 回答 3

1

{results: email}将是创建对象的对象文字语法。您需要使用results.emailresults['email']

编辑:根据@TravisJ 所说,您可能需要解析结果。这不太可能,但您的选择包括:

  1. 发出 JSON 时将设置application/json为标头Content-type
  2. 用作参数dataType: json之一$.ajax
  3. 在字符串上使用$.parseJSON或。JSON.parseresults
于 2013-03-13T00:21:40.560 回答
0

使用点符号访问属性,results.email

postActor: function(){
    var self = checkLogin;
        $.ajax({
        data: self.config.form.serialize(),
            success: function(results) {
                if(results){
                    console.log(results.email);      
                    alert('this should worlk');
                } else {
                    alert('this isn't working');
                }
            }
        });
    },
于 2013-03-13T00:21:52.200 回答
0

假设结果变量是一个 json 编码的字符串,您必须将其解析为 json。使用 JSON.parse(string),或者如果指定了 dataType json.. 只需使用对象访问表示法:

results.email

或者

results['email'].

JSON 是J ava s cript Object Notation 您可以在此处阅读有关它的更多信息:http : //www.json.org/

除此之外,您忘记在以下行中转义引号:

alert('this isn't working');
           //  ^ this should be escaped.

这可能会导致您的其余功能中断。

于 2013-03-13T00:21:57.747 回答