对 JSON 源进行排序

Sorting JSON feed

本文关键字:排序 JSON      更新时间:2023-09-26

我环顾了这个网站和其他几个网站,找不到任何可以回答我的问题的东西。我得到了以下 JSON 变量:

var jsonObject = {
    "videos": {
        "name": "Video",
        "placement": "3",
        "items": [{
            "title": "Baby Wolf Video",
            "video": "http://www.youtube.com/embed/fccTIlX6mnc",
            "width": "560",
            "height": "315"
        }]
    },
    "images": {
        "name": "Related Images",
        "placement": "5",
        "items": [{
            "title": "",
            "summary": "Boy that's a beautiful car. I want one '"just like it'".",
            "byline": "Chris Hister",
            "mycapture": "false",
            "width": "1011",
            "height": "768"
        }, {
            "title": "",
            "summary": "Boy what an awesome grab. You had to be there to truly appreciate it.",
            "byline": "Number Nine",
            "mycapture": "false",
            "width": "400",
            "height": "600"
        }, {
            "title": "",
            "summary": "The cutest little baby wolf you'll ever find in the wild. We had a lot more pics, but his mom said this was the only one we could post. Better one than none!",
            "byline": "Baby Wolf",
            "mycapture": "false",
            "width": "1280",
            "height": "1024"
        }, {
            "title": "",
            "summary": "Beautiful bird in the wild. It's always fun to get your feet wet just a little, then fly away.",
            "byline": "Wild Bird",
            "mycapture": "false",
            "width": "1992",
            "height": "1422"
        }, {
            "title": "",
            "summary": "The mysterious soldier/pilot from a distant past. This guys has determination written in his gaze, and goggles on his forehead. In other words, he means business!",
            "byline": "The Soldier",
            "mycapture": "false",
            "width": "1120",
            "height": "1368"
        }, {
            "title": "",
            "summary": "Nothing screams America louder than the historical photo. Most people know this image as 'Raising the Flag on Iwo Jima'.",
            "byline": "American Soldiers",
            "mycapture": "false",
            "width": "250",
            "height": "201"
        }, {
            "title": "",
            "summary": "Everyone's favorite, most feared hero has to be Batman. This guy cannot be defeated, no matter what the punishment. He's been stabbed, shot, blown up, tortured, thrown into a pit, and the list goes on. Yet....somehow...he returns.",
            "byline": "Batman",
            "mycapture": "false",
            "width": "1024",
            "height": "768"
        }, {
            "title": "",
            "summary": "Uh oh! It's that time of year again where the ghosts and ghouls come out to play. Looks like this pumpkin won't be doing much of anything on this Halloween until he pays back the money he owes.",
            "byline": "Irresponsible Pumpkin",
            "mycapture": "false",
            "width": "360",
            "height": "450"
        }, {
            "title": "",
            "summary": "As terrifying as this would be in real life, a photo from afar makes it adorable. I would assume these 2 animals are being filmed from miles away in some jungle somewhere. Whatever the case, this is a magical moment between two of nature's wildest creatures.",
            "byline": "Baby and Momma Lion",
            "mycapture": "false",
            "width": "1024",
            "height": "768"
        }, {
            "title": "",
            "summary": "There comes a time in every little leaguers life where they get tackled. No exceptions here to #23 as he goes down with the entire pile. You can't help but respect that type of commitment from a little leaguer.",
            "byline": "Little Leaguer",
            "mycapture": "false",
            "width": "1053",
            "height": "768"
        }, {
            "title": "",
            "summary": "A local community center tells the neighborhood the story of Thanksgiving through the performing arts. After watching this, you'll truly understand why we should all be thankful.",
            "byline": "Community Center",
            "mycapture": "false",
            "width": "350",
            "height": "235"
        }, {
            "title": "",
            "summary": "If you've ever watched X-Men or any cartoon that showcases The Phoenix, then you understand why she's involved here. The Phoenix is a very unique character. In mythology, she has the ability to die (burst into flames), and come back, reborn anew from her own ashes. Talk about chicken or the egg.",
            "byline": "Phoenix",
            "mycapture": "false",
            "width": "1000",
            "height": "1000"
        }]
    },
    "mugs": {
        "name": "null",
        "placement": "2",
        "items": [{
            "title": "",
            "imagelink": "",
            "summary": "",
            "byline": "",
            "date": "",
            "mycapture": "",
            "width": "",
            "height": ""
        }]
    },
    "related": {
        "name": "Related Content",
        "placement": "4",
        "items": [{
            "type": "story",
            "title": "Ride & Drive: Ford Transit",
        }, {
            "type": "story",
            "title": "Weather Forecast for Tuesday",
        }, {
            "type": "story",
            "title": "Resolution passed to self-report bonds",
        }, {
            "type": "gallery",
            "title": "Christmas in Shohola",
        }, {
            "type": "gallery",
            "title": "Wait Until Dark",
        }, {
            "type": "gallery",
            "title": "Big Buck #4",
        }, {
            "type": "link",
            "title": "Facebook",
        }, {
            "type": "link",
            "title": "Twitter",
        }, {
            "type": "link",
            "title": "Google",
        }, ]
    },
    "facts": {
        "name": "Article Facts",
        "placement": "1",
        "items": [{
            "title": "The truth about dangerous cars",
            "summary": "Pop-up semiotics artisan, Neutra flannel meggings yr seitan pug pork belly messenger bag tofu squid whatever bicycle rights. Letterpress forage distillery, normcore Vice Thundercats ethical drinking vinegar tofu cardigan jean shorts lo-fi typewriter tote bag. Crucifix Thundercats fixie lo-fi freegan. Hoodie lo-fi beard plaid quinoa. Farm-to-table YOLO drinking vinegar raw denim master cleanse, mixtape Banksy Intelligentsia High Life. Blue Bottle slow-carb mustache put a bird on it PBR&B keytar. Schlitz migas iPhone deep v four loko four dollar toast, sriracha brunch aesthetic.Aesthetic keytar mustache PBR&B letterpress, 3 wolf moon XOXO. Umami leggings kale chips four dollar toast. Retro 8-bit Intelligentsia Pinterest, VHS cred DIY disrupt umami irony gastropub keytar. Master cleanse meggings beard, umami seitan sartorial small batch flexitarian flannel church-key. PBR&B YOLO Carles church-key, meditation Schlitz sustainable paleo Echo Park Pitchfork High Life meh four loko Vice. Williamsburg Helvetica DIY High Life. Portland raw denim next level vinyl.Hashtag sustainable retro umami. +1 fap Austin meggings cornhole. Vinyl food truck Etsy, Schlitz cronut craft beer deep v chia. Umami vinyl Godard, kale chips semiotics single-origin coffee ethical hashtag swag lumbersexual direct trade. Plaid banh mi deep v, craft beer listicle street art aesthetic. Hoodie viral chillwave literally health goth. Listicle Tumblr tote bag 90's artisan, meditation plaid lomo....",
            "body": "Pop-up semiotics artisan, Neutra flannel meggings yr seitan pug pork belly messenger bag tofu squid whatever bicycle rights. Letterpress forage distillery, normcore Vice Thundercats ethical drinking vinegar tofu cardigan jean shorts lo-fi typewriter tote bag. Crucifix Thundercats fixie lo-fi freegan. Hoodie lo-fi beard plaid quinoa. Farm-to-table YOLO drinking vinegar raw denim master cleanse, mixtape Banksy Intelligentsia High Life. Blue Bottle slow-carb mustache put a bird on it PBR&B keytar. Schlitz migas iPhone deep v four loko four dollar toast, sriracha brunch aesthetic.Aesthetic keytar mustache PBR&B letterpress, 3 wolf moon XOXO. Umami leggings kale chips four dollar toast. Retro 8-bit Intelligentsia Pinterest, VHS cred DIY disrupt umami irony gastropub keytar. Master cleanse meggings beard, umami seitan sartorial small batch flexitarian flannel church-key. PBR&B YOLO Carles church-key, meditation Schlitz sustainable paleo Echo Park Pitchfork High Life meh four loko Vice. Williamsburg Helvetica DIY High Life. Portland raw denim next level vinyl.Hashtag sustainable retro umami. +1 fap Austin meggings cornhole. Vinyl food truck Etsy, Schlitz cronut craft beer deep v chia. Umami vinyl Godard, kale chips semiotics single-origin coffee ethical hashtag swag lumbersexual direct trade. Plaid banh mi deep v, craft beer listicle street art aesthetic. Hoodie viral chillwave literally health goth. Listicle Tumblr tote bag 90's artisan, meditation plaid lomo.",
            "image": {
                "title": "The truth about dangerous cars",
                "credit": "The Joker",
                "caption": "The driver of this car is a joke",
                "width": "0",
                "height": "0",
                "mycapture": "false"
            }
        }]
    }
};

我需要以某种方式按分配给每个单独项目的"放置"值对其进行排序。例如,第一项应位于点 #3 中,因为它的放置值为 3。第二项应位于点 #5 中,因为它的放置值为 5。我在这里尝试了几件事,但我似乎无法让它以我需要的排序方式实际重新绘制提要。

至少再过 6 个月,我才能访问绘制此提要的服务器。现在,这就是我必须使用的全部内容。请帮忙!!仅今天我就花了大约 6 个小时。这里的任何帮助将不胜感激!

克里斯

跟进斯科特的回答:

var output = $.map(jsonObject, function (o) {
    return [o];
}).sort(function (a,b) {
    return a.placement - b.placement;
});

变量的顶层不是数组,因此没有顺序的概念。 您可以做的最接近的事情是将这些项目提取到数组中并对其进行排序,或者仅使用键进行排序。

如果要在数组中添加具有排序(按位置(的对象。 尝试以下代码

   var keyArr = Object.keys(jsonObject);
var newObjectArr = [];
for(var i=0; i<keyArr.length ;i++){
    jsonObject[keyArr[i]].KeyName = keyArr[i];
    newObjectArr[jsonObject[keyArr[i]].placement] = jsonObject[keyArr[i]];
}

您将获得排序的对象数组。由于您的位置以 1 开头,您将在数组的零索引处获得未定义。