【问题标题】:Http request, extracting the dataHttp请求,提取数据
【发布时间】:2012-07-03 09:31:39
【问题描述】:

我是 json、js 等的新手。 所以我对这一切有点困惑,httprequests等。 我正在尝试从响应中提取数据。首先我做了 XMLHttpRequest,但我在 Stackoverflow 上读到了这里,我更喜欢使用 jquery 或类似的框架,因为我已经使用 jquery mobile,所以感觉很自然。

现在的问题是如何从“响应”中获取数据。

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);
            });
        });
}

如何从中取出我的代码?

【问题讨论】:

  • 你是如何把你的代码从什么东西中取出来的?
  • 首先,您的响应中没有 .items,这就是您没有看到任何内容的原因。您可以使用“data.*”访问对象属性。从响应中获取 id 的示例使用:data.data.id;
  • this 可以帮助你。

标签: jquery json xmlhttprequest


【解决方案1】:

当您使用 getJSON 时,数据结果会自动转换为 Javascript 对象,其属性与 JSON 字符串中的键值匹配。所以你的对象属性将是“list”、“data”、“expires”和“server”。

“数据”属性将是另一个对象,其中包含“id”、“图片”、“文本”等属性。

所以要访问您的数据,只需像对象一样引用它:

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

当然,您不需要像那样将值放在 vars 中。我只是向您展示如何引用它们。

【讨论】:

  • Jebin 的回答非常好,正是我所需要的。即使你的问题最符合我的问题 ;-) 所以我要说的是谢谢:D
  • 不客气。很高兴你能以某种方式解决它!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-04
  • 1970-01-01
相关资源
最近更新 更多