对 JSON 源进行排序
Sorting JSON feed
我环顾了这个网站和其他几个网站,找不到任何可以回答我的问题的东西。我得到了以下 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 开头,您将在数组的零索引处获得未定义。
相关文章:
- 排序 JSON 时遇到问题
- 日历数据排序 json 树
- 用JavaScript排序JSON数据
- 从jQuery . getjson()重新排序JSON数据
- 在表中排序JSON数据
- 用AngularJS排序JSON对象数组
- 麻烦排序json对象最接近当前日期与一些值未定义
- 使用javascript升序排序Json对象
- 排序json对象
- 通过在json对象的每个属性中找到的索引来排序json对象的最佳方法是什么?
- 按属性的重要性排序JSON对象数组
- 如何按日期排序json数据
- 如何排序json与两个项目
- 使用jQuery排序JSON对象
- 按类别排序JSON内容
- 当日期不是有效格式时,按日期排序json
- 排序JSON与JavaScript字母顺序之前的数字
- 我如何过滤和排序Json数据
- 排序JSON对象'子键由它们的子键'值
- 按值排序json对象