2012-07-03 488 views
1

我是json,js等新手 所以我對這一切有點困惑,httprequests等。 我試圖從響應中提取數據。首先我做了XMLHttpRequest,但是我在這裏閱讀了Stackoverflow,最好使用像jquery或類似的框架,並且由於我已經使用jquery mobile,所以感覺很自然。Http請求,提取數據

現在的問題是如何從「響應」中獲取數據。

XMLHttpRequest.response文字是這樣的:

{"list":null,"data":{"id":95,"picture":"/content/picture/icons/Rome","text":"En galning hældte forleden 1 ton sukker i Roms officielle vandforsyning","appId":1,"textHeader":"Rome sweet Rome!!","localAction":"url(http://www.b.dk)","sortOrder":0,"lastCheck":null},"expires":2592000000,"server":null} 

,現在當我想跟着從jquery的例子中,我得到一個對象返回。但沒有在數據*

其代碼:

var startUrl = "http://localhost:8080"; 
function httpGet(theUrl) 
{ 
    $.getJSON(startUrl+theUrl, 
     function(data){ 
      alert(data); 
      $.each(data.items, function(i,item){ 
       alert(i+item); 
      }); 
     }); 
} 

如何把我的代碼出來的嗎?

+0

你如何從你的代碼中得到什麼? – shxfee

+1

首先你的迴應中沒有.items,這是你沒有看到任何東西的原因。你可以使用「data。*」來訪問對象屬性。從repsonse用法獲取id的示例:data.data.id; – xdevel

+1

[this](http://stackoverflow.com/questions/2487841/jquery-parse-json-multidimensional-array)可能會幫助你。 – Jebin

回答

1

當您使用getJSON時,數據結果會自動轉換爲具有與JSON字符串中的鍵值匹配的屬性的Javascript對象。所以你的對象屬性將是「列表」,「數據」,「過期」和「服務器」。

「數據」屬性會隨着它發現像「ID」,「圖片」,「文本」屬性另一個對象等

所以訪問您的數據只是指它像一個對象:

var picture = data.data.picture; 
var text = data.data.text; 

當然,你不需要把值這樣的增值經銷商。我只是向你展示如何引用它們。

+0

傑賓的回答非常好,而且正是我所需要的。即使你的匹配我的問題最好;-) 所以我說的是感謝:D –

+0

不客氣。很高興你能以某種方式解決問題! – davidethell