首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONkit排序问题

JSONkit排序问题
EN

Stack Overflow用户
提问于 2011-10-31 03:26:20
回答 2查看 847关注 0票数 0

我正在使用基于REST的web服务来获取数据。无论JSON文档的结构是什么,NSDictionary都是以相同的方式填充的。我希望在web服务返回时保留排序。

下面是我的代码:

代码语言:javascript
复制
-(void) getData
{
    NSURL *url = [NSURL URLWithString:@"http://somewebservice"];
    __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setCompletionBlock:^{
        // Use when fetching text data
        NSString *responseString = [request responseString];

        NSDictionary *resultsDictionary = [responseString objectFromJSONString];


            [jokesArray release];
            jokesArray = [resultsDictionary allValues]; //always has the same order. 

            [jokesArray retain];


            [self.tableView reloadData];





        // Use when fetching binary data
  //      NSData *responseData = [request responseData];
    }];
    [request setFailedBlock:^{
        NSError *error = [request error];

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"An error occured" 
                                                        message:[error description]
                                                       delegate:nil 
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];
        [alert show];
        [alert release];
    }];
    [request startAsynchronous];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-31 03:31:06

NSDictionary中的条目没有固有的顺序;它们没有按定义排序。allValues返回的数组也是如此,文档中明确指出:

未定义数组中值的顺序。

之后,您需要对数组进行排序。如果希望保持与JSON源中相同的排序顺序,则必须手动解析JSON数据并从字典中逐个检索值。或者,如果您知道JSON数据是如何排序的,只需对allValues返回的数组应用相同的排序算法即可。

票数 2
EN

Stack Overflow用户

发布于 2012-05-05 05:23:35

您不应该使用JSON字典来存储顺序很重要的内容。正如http://json.org/所说

对象是一组无序的名称/值对。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7947234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档