0

この JSON ファイルを jquery で解析して、「true」に設定されている「onpage」フィールドにアクセスしようとしています。次に、そのアイテムの他のフィールド (desc、icon、name & url) を使用します。「アイテム」にたどり着くことができますが、「アイテム」内の「オンページ」にたどり着く方法を理解できます。ありがとう

[
{
    "group": "Home",
    "url": "http://www.home.com/"
},
{
    "group": "Production",
    "items": [
        {
            "onpage": true,
            "desc": "View local trails",
            "icon": "img/trails.png",
            "name": "Trails",
            "url": "https://www.home.com/go/Trails"
        },
        {
            "onpage": false,
            "desc": "Edit local trail",
            "icon": "img/traileditor.png",
            "name": "Trail Editor",
            "url": "https://www.home.com/go/Editor/"
        }
    ]
}

]

4

1 に答える 1

1

解析すると、2 つのオブジェクトを含む配列が得られます。itemsこれらのオブジェクトの 2 番目には、オブジェクトの配列であるプロパティがあります。そのitems配列の最初のエントリは にonpage等しいtrueです。したがって、直接パスは次のとおりです。

itemWithOnPageTrue = theParsedData[1].items[0];

それを見つける必要がある場合は、おそらく一対のループを使用するでしょう:

var itemWithOnPageTrue;
$.each(theParsedData, function() {
    var found;
    if (this.items) {
        $.each(this.items, function() {
            if (this.onpage) {
                itemWithOnPageTrue = this;
                found = true;
                return false;
            }
        });
        if (found) {
            return false;
        }
    }
});

$.eachfalse を返すと、ループが停止します。これが、最初の一致が見つかったときにループを停止する理由です。何も返さないか、別の値を返すと、ループし続けます。

を取得すると、、 などitemWithOnPageTrueの他のプロパティにアクセスできます。itemWithOnPageTrue.descitemWithOnPageTrue.icon

于 2013-04-03T17:12:08.190 に答える