gpt4 book ai didi

objective-c - 在IOS中发出http请求并从返回的json对象中解析特定数据

转载 作者:行者123 更新时间:2023-11-28 22:50:23 27 4
gpt4 key购买 nike

我已经通过教程设法在 obj-C 中发出 http 请求和解析 json 对象。不,从我得到的数据来看,我想将前 17 个保存到一个数组中,并将 20-33 个项目保存到另一个数组中。问题是数据的顺序与我在 http 请求中显示的顺序不同,但在另一个请求中显示的顺序不同,所以我不能这样做,因为它们的顺序与应有的顺序不同。

这是我的代码:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"connectionDidFinishLoading");
NSLog(@"Succeeded! Received %d bytes of data",[self.responseData length]);

// convert to JSON
NSError *myError = nil;
NSDictionary *res = [NSJSONSerialization JSONObjectWithData:self.responseData options:NSJSONReadingMutableLeaves error:&myError];
NSMutableArray *array_1 = [NSMutableArray array];
NSMutableArray *array_2 = [NSMutableArray array];
int index=0;

// show all values
for(id key in res) {
index=index+1;
id value = [res objectForKey:key];

NSString *keyAsString = (NSString *)key;
NSString *valueAsString = (NSString *)value;


if (index<=17){
[array_1 addObject:valueAsString];
NSLog(@"%i: array 1 filling up: %@",index, keyAsString);
NSLog(@"%@",array_1);

} else if ((index>20)&&(index<=33)){
[array_2 addObject:valueAsString];

}
}
}

所以我希望我的数据与我在浏览器中运行脚本时的顺序相同。我猜它与 NSDictionary 有关,但我不知道还有什么用。

最佳答案

要实现这一目标并不容易。正如 NSDictionary 的文档所述,字典中键的顺序是未指定的。如果你真的必须依赖项目的顺序,要么使用 JSON 本身的数组包装它们(在解析期间产生 NSArray),要么创建一个 NSDictionary 的子类,使键顺序保持不变。

关于objective-c - 在IOS中发出http请求并从返回的json对象中解析特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12128806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com