当前位置: 首页 > 面试题库 >

jQuery从JSON数组获取数据

边霄
2023-03-14
问题内容

这是我从foursquare获得的JSON的一部分。

JSON格式

tips: {
    count: 2,
    groups: [
    {
        type: "others",
        name: "Tips from others",
        count: 2,
        items: [
        {
            id: "4e53cf1e7d8b8e9188e20f00",
            createdAt: 1314115358,
            text: "najjači fitness centar u gradu",
            canonicalUrl: "https://foursquare.com/item/4e53cf1e7d8b8e9188e20f00",
            likes: {
                count: 2,
                groups: [
                {
                    type: "others",
                    count: 2,
                    items: []
                }],
                summary: "2 likes"
            },
            like: false,
            logView: true,
            todo: {
                count: 0
            },
            user: {
                id: "12855147",
                firstName: "Damir",
                lastName: "P.",
                gender: "male",
                photo: {
                    prefix: "https://irs1.4sqi.net/img/user/",
                    suffix: "/AYJWDN42LMGGD2QE.jpg"
                }
            }
        },
        {
            id: "4e549e39152098912f227203",
            createdAt: 1314168377,
            text: "ajd da vidimo hocu li znati ponoviti",
            canonicalUrl: "https://foursquare.com/item/4e549e39152098912f227203",
            likes: {
                count: 0,
                groups: []
            },
            like: false,
            logView: true,
            todo: {
                count: 0
            },
            user: {
                id: "12855147",
                firstName: "Damir",
                lastName: "P.",
                gender: "male",
                photo: {
                    prefix: "https://irs1.4sqi.net/img/user/",
                    suffix: "/AYJWDN42LMGGD2QE.jpg"
                }
            }
        }]
    }]
}

我需要获取最后的提示 文本 ,编写它的 用户 以及他编写/发布它的 日期

用户 :达米尔·P。

日期 :1314115358

文字 :健身中心

我尝试使用 JQuery ,这可以获取非数组值:

$.getJSON(url, function(data){
    var text= data.response.venue.tips.groups.items.text;
    alert(text);
});

但这不适用于数组。

结果 :未捕获的TypeError:无法读取未定义的属性“文本”。

我也尝试了 $ .each ,但没有效果。

$.getJSON(url, function(data){
    $.each(data.response.venue.tips.groups.items.text, function (index, value) {
        console.log(value);
    });
});

我究竟做错了什么 ?


问题答案:

您需要迭代组和项目。$
.each()
将集合作为第一个参数,并data.response.venue.tips.groups.items.text
尝试 指向一个字符串。这两个groupsitems是数组。

详细版本:

$.getJSON(url, function (data) {

    // Iterate the groups first.
    $.each(data.response.venue.tips.groups, function (index, value) {

        // Get the items
        var items = this.items; // Here 'this' points to a 'group' in 'groups'

        // Iterate through items.
        $.each(items, function () {
            console.log(this.text); // Here 'this' points to an 'item' in 'items'
        });
    });
});

或更简单地说:

$.getJSON(url, function (data) {
    $.each(data.response.venue.tips.groups, function (index, value) {
        $.each(this.items, function () {
            console.log(this.text);
        });
    });
});

在您指定的JSON中, 最后 一个是:

$.getJSON(url, function (data) {
    // Get the 'items' from the first group.
    var items = data.response.venue.tips.groups[0].items;

    // Find the last index and the last item.
    var lastIndex = items.length - 1;
    var lastItem = items[lastIndex];

    console.log("User: " + lastItem.user.firstName + " " + lastItem.user.lastName);
    console.log("Date: " + lastItem.createdAt);
    console.log("Text: " + lastItem.text);
});

这将为您提供:

用户:Damir P.
日期:1314168377
文字:ajd da vidimo hocu li znati ponoviti



 类似资料:
  • 问题内容: 我的页面如下: 和一个php文件来处理ajax请求; 但是,当我单击时,我得到的不是array [0]。我怎样才能解决这个问题?? 提前致谢… 问题答案: 您不能从js访问数组(php数组)try 和js

  • 问题内容: 我有这段代码块,将我的数组中的“类别”显示到JQuery简单列表中。 效果很好,但是如果“篮球”类别中有3个项目,该类别将出现3次。 我怎样才能使它们只出现一次?谢谢。 这是代码: 这是我的数组的代码: 问题答案: 我不知道您的数组是如何构建的(因此我的示例可能需要根据您的需要进行一些修改),但是您可以编写一些代码,首先将您的独特类别收集到一个新数组中: jsFiddle演示 将包含您

  • 我们的中央银行以多种方式提供货币汇率。例如,一个货币日期很容易获得:http://api.nbp.pl/api/exchangerates/rates/a/usd/2020-08-20?format=Json(它以简单的大括号开始{作为典型的Json) 但是另一个表-每个货币日期:http://api.nbp.pl/api/exchangerates/tables/a/2020-08-20?for

  • 问题内容: 我正在尝试通过jQuery ajax调用获取数据。 我的代码如下所示: 我的文件返回的是json格式的数据,但某些文本为Unicode格式。我在我的javascript文件上及其上设置了字符集,但仍然无法访问响应的数据对象。 有任何想法吗? 问题答案: 尝试加入您的ajax调用:

  • 问题内容: 我知道它是一个数组,但是我对JSON完全陌生,需要帮助理解它的结构,这是我提取数据的尝试: 我拥有的JSON数据如下所示: 我对这些东西的掌握并不强,因此感谢所有帮助。 问题答案: 这是个主意: 它应该可以工作(如果有编译错误,请随时投诉)

  • 我想从Firebase实时数据库中获取整个JSON数组。从实时数据库中提取数组并将其存储在自定义类的ArrayList中。