2013-03-13 100 views
0

我试着去访问JSON字符串的邮件部分JSON,试图访问数组

{“电子邮件”:“请输入的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'); 
       } 
      } 
     }); 
    }, 

它快把我逼疯了能有人指出什么即时通讯做错了。 感谢名单

回答

1

{results: email}将objec t文字语法来创建一个对象。您需要使用results.emailresults['email']

编辑:基于@TravisJ说什么,你可能需要解析结果。这是不可能的,但你的选择包括:

  1. 设置application/jsonContent-type头球时JSON发出
  2. 使用dataType: json为一体的$.ajax参数
  3. 的字符串results使用$.parseJSONJSON.parse之一。
+2

根据它的发送方式,它可能也需要被解析为json。 – 2013-03-13 00:21:59

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

假设的结果变量是JSON编码字符串,你将不得不解析它作为JSON。或者与JSON.parse(字符串),或者如果指定的数据类型JSON是..只是使用对象访问表示法:

results.email 

results['email']. 

JSON是Ĵ AVA 小号 CRIPT Ø bject ñ浮选,你可以在这里阅读更多关于它:http://www.json.org/

从塔

除了t,你忘了在下面的行中漏掉你的引用标记:

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

这很可能导致你的函数的其余部分中断。