我正在尝试在我的JSON http://data.mtgox.com/api/1/BTCUSD/trades/fetch中获取最新更新的条目,但不幸的是,最新更新的条目显示在底部而不是JSON列表的顶部。这是我的代码
- (void)fetchedlatestData:(NSData *)responseData {
NSError* error;
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData:responseData //1
options:kNilOptions
error:&error];
NSArray* bitcoinPrices2 = [json objectForKey:@"return"]; //2
//Get the Last Price
NSDictionary* latest = [bitcoinPrices2 objectAtIndex:0];
NSDictionary* latestPrice = [latest objectForKey:@"price"];
NSLog(@"Data: %@", latestPrice);
通过使用objectAtIndex:0
我可以获得第一个条目,但是如何获取最后一个条目,因为索引号不一致,并且JSON中的条目数量不是一致的数字。当它进来时我是否需要反转JSON的顺序以使索引为0?我该怎么做?我试图得到最后两个“价格”数字来比较它们,我是JSON如何工作的新手。感谢
答案 0 :(得分:3)
您的商品位于数组中。您可以使用count
方法获取数组中的项目数。计算完成后,您可以获得所需的任何项目。 lastObject
也是获取最后一项的快捷方式。
NSDictionary* last = [bitcoinPrices2 lastObject];
NSDictionary* secondLast = [bitcoinPrices2 objectAtIndex:(bitcoinPrices2.count - 2)];
答案 1 :(得分:1)
您可以使用-lastObject
:
NSDictionary* latest = [bitcoinPrices2 lastObject];
答案 2 :(得分:0)
您也可以使用[bitcoinPrice2计数]。
if ([bitcoinPrice2 count] > 0)
NSDictionary *lastItem = [bitcoinPrice2 objectAtIndex:([bitcoinPrice2 count] - 1)];
if ([bitcoinprice2 count] > 1)
NSDictionary *penultimateItem = [bitcoinPrice2 objectAtIndex:([bitcoinPrice2 count] - 2)];