2012-12-22 58 views
1

我有一个在它的PARAM通过JSON功能...如何反转JSON对象?

{ 
    "code":0, 
    "payload":[ 
     { 
     "time":1349661897, 
     "packages":[ 
      "49381" 
     ], 
     "ign":"PurpleArrow", 
     "price":"15.99", 
     "currency":"USD" 
     } 
} 

app.js:

var Donors = function(api) { 

    this.list = api; 

    $.each(this.list.payload, function(i, donor) { 
    var ign = donor.ign, 
     price = donor.price, 
     currency = donor.currency; 

    if(price !== "-") $('#donors').append('<li>' + ign + ' donated ' + price + currency + '</li>'); 
    }); 
} 

和index.php文件:

var donors = new Donors(<?php cbProxy(); ?>); 

而就在 - 情况下,PHP函数只是获取json。

function cbProxy(){ 
    $api = 'http://api.buycraft.net/v3?secret=MYSECRETKEY&action=payments'; 
    $url = urldecode($api); 
    $url = 'http://' . str_replace('http://', '', $url); 
    echo file_get_contents($url); 

} 

我试图找出我怎么能扭转JSON所以最后IGN显示的第一而不是第一个,也就是在这里JSON。那么我如何重新订购json呢?无法从前面提出的问题中找到答案,并且我一直在获取.reverse()或.sort()在对象上不起作用。

回答

5

您可能试过.reverse()整个对象。既然你遍历数组this.list.payload过来,扭转数组来代替:

$.each(this.list.payload.reverse(), function(i, donor) { 
+0

唉唉这样做是使用一个变量,没有工作。现在确实如此,谢谢! – devs

+0

另一个问题,在我为此提出全新问题之前 - 你可能知道。假设我只想显示5而不是整个对象。我该怎么做?顺便说一句,我也喜欢搅拌机:) – devs

+0

@devs:你可以切片数组:'this.list.payload.slice(0,5)' – Blender