2011-11-16 51 views
0

我的Sencha Touch移動應用訪問了一個Web服務並獲取了JSON響應,我無法弄清楚該怎麼做。代碼中的JSON字段

這裏是我的代碼:

var declineResult = new Ext.regStore('declineResult', 
{ 
    model: 'BaseResponse', 
     proxy : { 
     type : 'ajax', 
     dataType: "json", 
     url : App.BaseURL + '/SetJobResponse/' + options.jobId + '/' + STCID +'/1/' + device.uuid, 
     reader: new Ext.data.JsonReader ({ 
      type: 'json' 
      }) 
    }, 
     listeners: 
     { 
      load: function(Field1, Field2, Field3, Field4) 
      { 
       var myDate = new Date(Field4); 

       alert('response message:' + Field1 + ',' + Field2 + ',' + Field3 + ',' + Field4 + ',' + myDate.getDate());     
      } 
     } 
}); 

Ext.StoreMgr.get("declineResult").load(); 

瀏覽的網址給:

{"ErrorMessage":"You are not authorised","ResponseTime":"\/Date(1321447985287)\/","StatusCode":401,"Success":false} 

但無論我做什麼,我不能得到任何有意義的東西來在警報() 。我試着轉換爲各種數據類型,JSON解析,getValue()和新的字符串(Field1)以及在陽光下的每個類似函數。我得到的只有[對象對象]或NaN。我甚至不能確定哪個領域是哪個。

互聯網上的每個例子似乎都假設你只是將它插入網格或其他東西。我如何審問這些領域?

回答

0

負載事件有不同的簽名:

「負荷」:功能(存儲,記錄,成功)

1

史蒂夫,

的數據必須是格式爲「{ '...... ':' ...... '' ...... ':' ......' ,....}「成對,用冒號和整個集合在括號內分開。然後你可以parseJSON。

祝你好運。更多信息可以幫助我們幫助你!

+0

謝謝,但你需要什麼更多信息?我給你的代碼和服務器發回的JSON,我只需要知道如何從[object Object]中獲取它到「你沒有被授權」等。 – SteveCav

+0

嗨史蒂夫,也許我把我的舌頭放在哪裏我不應該有:sencha(我甚至不知道那是什麼)。但是,我的意圖是提醒您檢查返回的數據格式。再次祝你好運! –

0

我不知道煎茶,不能工作了您的應用程序是如何讓中得到任何迴應,但顯然它是,因此,如果您的警報給你的翻譯:嘗試:


alert (Field1.ErrorMessage); 

如果還是不行工作嘗試:


var res = JSON.parse(Field1); 
alert (res.ErrorMessage); 

如果不使用Web督察(Safari瀏覽器),螢火蟲無論從那些然後檢查你得到某種迴應的得到任何合理的(它是在你期望的格式) (Firefox)或類似的調試工具將成爲進一步探索的途徑。