2014-12-15 26 views
11

Bu, JSON dosyamın bir örneğidir.JSON Dosyasında ilk 10 Değer Toplanıyor

[ 
    {"Variable":"Hello","Variable1":20}, {"Variable":"Hi","Variable1":30}, 
    {"Variable":"How","Variable1":40}, {"Variable":"Who","Variable1":50}, 
    {"Variable":"Where","Variable1":60}, {"Variable":"This","Variable1":100}, 
    {"Variable":"Pork","Variable1":10}, {"Variable":"Creep","Variable1":90}, 
    {"Variable":"Mega Creeps","Variable1":80}, {"Variable":"LOL","Variable1":0}, 
    {"Variable":"ROFL","Variable1":0}, {"Variable":"LMAO","Variable1":0}, 
    {"Variable":"POP","Variable1":0}, {"Variable":"LOVE","Variable1":0}, 
    {"Variable":"PICK","Variable1":0}, {"Variable":"WHIZ","Variable1":0}, 
    {"Variable":"BORED","Variable1":0}, {"Variable":"KILLAH","Variable1":0}, 
    {"Variable":"LOLLING","Variable1":0}, {"Variable":"HALOO HALOO","Variable1":0} 
] 

En Çok Değişken1 sayıdan en En İlk 10'a nasıl ulaşabilirim? Ancak JSON dosyasını aynı formatta geçirecek.

cevap

12

Birincisi, Nesnelerin bir diziye JSON ayrıştırmak:

var top10 = data.sort(function(a, b) { return a.Variable1 < b.Variable1 ? 1 : -1; }) 
       .slice(0, 10); 

Sen ile yapabilirsiniz Array.sort

+0

Karşılaştırmada yazım hatası var. Olmalıdır '' a.Variable1> b.Variable1'' – LongZheng

3

bakınız:

var data = JSON.parse(json); 

Sonra hedefe ulaşmak için sort ve slice birleştirmek Alasql JavaScript kütüphanesi. Json dosyasını indirir, ayrıştırır ve üzerinde SQL ifadesini çalıştırır. Bu doğrudan JSON dosyasından üst 10 almak nasıl bir örnek:

<script src="alasql.min.js></script> 
<script> 
    alasql("SELECT TOP 10 * FROM JSON('mydata.json') ORDER BY Variable1 DESC",[], function(top10){ 
     console.log(top10); 
    }); 
</script> 

Yoksa zaten bellekte veri varsa:

var data = [{"Variable":"Hello","Variable1":20},{"Variable":"Hi","Variable1":30}]; 
    var res = alasql("SELECT TOP 10 * FROM ? ORDER BY Variable1 DESC",[data]); 

jsFiddle içinde this sample deneyin.

+0

php kullanarak bunu elde etmek için herhangi bir yolu var mı? – Maverick

İlgili konular