[英]JSON Objects between PHP and Objective-C
我的iPhone应用程序正在从PHP网站抓取一个JSON对象。
PHP站点上的对象具有多个属性,即整数。
从数据库中检索到的属性从数据库(它们存储为INT
)回来,在JSON中显示如下: "seatedplayers":"3"
在PHP代码中修改的属性在JSON中显示如下: "currentseat":1
在我的Obj-c中,我正在使用NSNumberFormatter来正确格式化它们,如下所示:
[numFormatter numberFromString:[jsonObject objectForKey:@"seatedplayers"]];
(jsonObject是一个NSDictionary
)
该代码适用于带有值的引号的属性,但不适用于其他代码。 如果我在Objective-C代码中添加stringValue
,它可以处理没有引号但不带引号的属性。
现在,我的一个大问题是,这个应用程序需要与我不会亲自编写的站点进行通信,那么我可以编写Objective-C中的哪些代码来处理这两个实例?
编辑
这就是我获取NSDictionary jsonObject的方法。
- (NSDictionary *) getJSONObjectFromWebAddress:(NSString *) address {
// Prepare the URL Request
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:address]];
// Perform the request, expecting JSON back
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSError *error;
SBJsonParser *parser = [[SBJsonParser new] autorelease];
NSDictionary *jsonObject = [parser objectWithString:responseString error:&error];
if (!jsonObject) {
NSLog(@"%@", error);
}
[responseString release];
return jsonObject;
}
我有同样的问题。 幸运的是,NSString和NSNumber都响应intValue,因此您可以安全地使用它。
//NSDictionary* myJsonParsed;
[NSString stringWithFormat:@"%d", [[myJsonParsed valueForKey:@"stringOrInt"] intValue]];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.