2012-07-03 65 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