Ios 使用Webservice和json解析进行排名
我对objective-c还不熟悉,正在努力学习一些东西 我正在使用带有php的Web服务创建一个精灵工具包游戏和在线排名 现在,我只需要得到一个返回前10名/分数的json 我正在这样做: NSMutableArray*nomes; NSMutableArray*分数Ios 使用Webservice和json解析进行排名,ios,objective-c,json,web-services,Ios,Objective C,Json,Web Services,我对objective-c还不熟悉,正在努力学习一些东西 我正在使用带有php的Web服务创建一个精灵工具包游戏和在线排名 现在,我只需要得到一个返回前10名/分数的json 我正在这样做: NSMutableArray*nomes; NSMutableArray*分数 NSData* jsonDados = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:@"http://www.
NSData* jsonDados = [[NSData alloc] initWithContentsOfURL:
[NSURL URLWithString:@"http://www.420blazeitswag.com/wsGame/functions.php?funcao=getRanking"]];
NSError *error;
NSMutableDictionary *jsonRanking = [NSJSONSerialization
JSONObjectWithData:jsonDados
options:NSJSONReadingMutableContainers
error:&error];
NSDictionary* ranking = [jsonRanking objectForKey:@"ranking"];
resultado = [NSMutableArray alloc];
nomes = [ranking objectForKey:@"NOME"];
scores = [ranking objectForKey:@"SCORE"];
NSLog(@"count: %lu\n",[ranking count]);
for(int i=0;i<[ranking count];i++){
[resultado addObject:[NSDictionary dictionaryWithObjectsAndKeys:nomes[i],@"nome",scores[i],@"score", nil]];
NSLog(@"Nome: %@ Score: %@",nomes[i],scores[i]);
}
NSData*jsonDados=[[NSData alloc]initWithContentsOfURL:
[NSURL URLWithString:@”http://www.420blazeitswag.com/wsGame/functions.php?funcao=getRanking"]];
n错误*错误;
NSMutableDictionary*jsonRanking=[NSJSONSerialization
JSONObjectWithData:jsonDados
选项:NSJSONReadingMutableContainers
错误:&错误];
NSDictionary*ranking=[jsonRanking objectForKey:@“ranking”];
resultado=[NSMutableArray alloc];
nomes=[排名对象forkey:@“NOME”];
分数=[排名对象:分数];
NSLog(@“计数:%lu\n,[排名计数]);
对于(int i=0;i这一行:
NSDictionary* ranking = [jsonRanking objectForKey:@"ranking"];
不正确,因为键“ranking”
的值将是一个NSArray
。在该数组中,您将有许多字典。因此,您需要迭代“ranking”数组并分别处理每个字典
但是看看你的代码,resultado
和你得到的JSON之间唯一的区别(因此,ranking
的内容是键的资本化,所以你可能根本不需要做任何迭代
首先:
NSArray *ranking = [jsonRanking objectForKey:@"ranking"];
不清楚为什么会收到SSL错误消息,因为您正在加载的JSON来自http
站点,并且似乎没有任何重定向。您需要确定SSL错误消息来自何处,然后才能解决此问题
旁白:
不要只是这样做:[NSMutableArray alloc]
。在调用alloc
后始终调用init
方法。如果不想执行alloc init
,请使用类便利方法(如[NSMutableArray]
)。这行:
NSDictionary* ranking = [jsonRanking objectForKey:@"ranking"];
不正确,因为键“ranking”
的值将是一个NSArray
。在该数组中,您将有许多字典。因此,您需要迭代“ranking”数组并分别处理每个字典
但是看看你的代码,resultado
和你得到的JSON之间唯一的区别(因此,ranking
的内容是键的资本化,所以你可能根本不需要做任何迭代
首先:
NSArray *ranking = [jsonRanking objectForKey:@"ranking"];
不清楚为什么会收到SSL错误消息,因为您正在加载的JSON来自http
站点,并且似乎没有任何重定向。您需要确定SSL错误消息来自何处,然后才能解决此问题
旁白:
不要只是这样做:[NSMutableArray alloc]
。在调用alloc
后始终调用init
方法。如果不想执行alloc init
,请使用类便利方法(如[NSMutableArray]
)。这行:
NSDictionary* ranking = [jsonRanking objectForKey:@"ranking"];
不正确,因为键“ranking”
的值将是一个NSArray
。在该数组中,您将有许多字典。因此,您需要迭代“ranking”数组并分别处理每个字典
但是看看你的代码,resultado
和你得到的JSON之间唯一的区别(因此,ranking
的内容是键的资本化,所以你可能根本不需要做任何迭代
首先:
NSArray *ranking = [jsonRanking objectForKey:@"ranking"];
不清楚为什么会收到SSL错误消息,因为您正在加载的JSON来自http
站点,并且似乎没有任何重定向。您需要确定SSL错误消息来自何处,然后才能解决此问题
旁白:
不要只是这样做:[NSMutableArray alloc]
。在调用alloc
后始终调用init
方法。如果不想执行alloc init
,请使用类便利方法(如[NSMutableArray]
)。这行:
NSDictionary* ranking = [jsonRanking objectForKey:@"ranking"];
不正确,因为键“ranking”
的值将是一个NSArray
。在该数组中,您将有许多字典。因此,您需要迭代“ranking”数组并分别处理每个字典
但是看看你的代码,resultado
和你得到的JSON之间唯一的区别(因此,ranking
的内容是键的资本化,所以你可能根本不需要做任何迭代
首先:
NSArray *ranking = [jsonRanking objectForKey:@"ranking"];
不清楚为什么会收到SSL错误消息,因为您正在加载的JSON来自http
站点,并且似乎没有任何重定向。您需要确定SSL错误消息来自何处,然后才能解决此问题
旁白:
不要只是这样做:[NSMutableArray alloc]
。在调用alloc
后始终调用init
方法。如果不想执行alloc init
,请使用类便利方法(如[NSMutableArray]
)。NSDictionary*ranking=[jsonRanking objectForKey:@“ranking”];
resultado=[NSMutableArray alloc];
nomes=[排名对象forkey:@“NOME”];
分数=[排名对象:分数];
NSLog(@“计数:%lu\n,[排名计数]);
对于(int i=0;iNSDictionary*ranking=[jsonRanking objectForKey:@“ranking”];
resultado=[NSMutableArray alloc];
nomes=[排名对象forkey:@“NOME”];
分数=[排名对象:分数];
NSLog(@“计数:%lu\n,[排名计数]);
对于(int i=0;iNSDictionary*ranking=[jsonRanking objectForKey:@“ranking”];
resultado=[NSMutableArray alloc];
nomes=[排名对象forkey:@“NOME”];
分数=[排名对象forkey:@“分数”]