json,试图访问数组

时间:2013-03-13 00:20:28

标签: javascript jquery ajax json

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

{“email”:“请输入valide电子邮件地址”,“传递”:“请输入您的密码”}“

传递给像这样的函数

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');
                }
            }
        });
    },

它让我疯狂可以有人指出我做错了什么。 感谢名单

3 个答案:

答案 0 :(得分:1)

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

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

  1. 在发出JSON时将application/json设置为Content-type标头
  2. 使用dataType: json作为$.ajax参数之一
  3. 在字符串$.parseJSON上使用JSON.parseresults

答案 1 :(得分: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');
                }
            }
        });
    },

答案 2 :(得分:0)

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

results.email

results['email'].

JSON是 J ava s cript O bject N otation,您可以阅读更多相关信息在这里:http://www.json.org/

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

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

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