2013-03-13 122 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. 

這很可能導致你的函數的其餘部分中斷。