2014-12-20 2 views
1

Я просмотрел этот сайт и несколько других и не могу найти ничего, что отвечает на мой вопрос. Я дал следующую переменную JSON:Сортировка JSON feed

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 часов. Любая помощь здесь будет очень признательна!

Крис

ответ

2

Верхний уровень переменной не является массивом, и, таким образом, не имеет ни малейшего представления о порядка. Самое близкое, что вы можете сделать, это извлечь эти элементы в массив и отсортировать их, или сделать это с помощью только ключей.

+1

Это правильный ответ. Просто добавьте к этому: дело в том, что верхний уровень - это объект, а не массив, и вы не можете сортировать свойства объекта в JavaScript. –

+0

В настоящее время я разговариваю с одним из разработчиков, которому принадлежит этот фид. Они спрашивают, что мне нужно, чтобы они «выглядели», чтобы это соответствовало нашим текущим потребностям. Можете ли вы немного рассказать о том, что вы подразумеваете под «верхним уровнем является объектом»? И укажите пример изменений, которые необходимо сделать для того, чтобы это было «сортируемым»? –

+0

@ChrisBlackMajikHister Это означает, что у вас есть 'var j = {...}', а не 'var j = [...]'. – Nit

4

Вслед за ответом Скотта:

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

Это должно сделать это - вместо этого он преобразует объект в массив. – Makaze

+0

Я добавил эту функцию на страницу, но когда я выплюнул jsonObject, она по-прежнему отображается в том же исходном порядке –

+1

На самом деле, у меня есть это сейчас. Необходимо присвоить значение переменной функции –

0

Если вы хотите добавить объекты в массив с сортировкой (путем размещения). попробуйте ввести код

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

U будет сортировать массив объектов. Поскольку ваши места размещения начинаются с 1, вы получите undefined при нулевом индексе массива.