获取一个NSString的section



在我的应用程序,我现在创建我使用goo。Gl的url缩短API,用于缩短url。我让它差不多工作了,我可以发送长url来检索NSString中的短url但是它的格式是这样的:

{
"类型":"urlshortener # url",
"id":"http://goo.gl/something",
"longUrl":"http://somethinglonggggg/"
}

我只是想知道是否有一种方法可以从中获取id(短url)。

到目前为止我写的是:

NSString *longURL = urlText.text;
NSData *reqData = [[NSString stringWithFormat:@"{"longUrl":"%@"}", longURL] dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest
                                requestWithURL:[NSURL URLWithString:@"https://www.googleapis.com/urlshortener/v1/url"]
                                cachePolicy:NSURLRequestUseProtocolCachePolicy
                                timeoutInterval:20];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:reqData];
NSError *err = [[NSError alloc] init];
NSData *retData = [NSURLConnection sendSynchronousRequest:request
                                        returningResponse:nil
                                                    error:&err];
if([err domain]) return;
NSString *retString = [[NSString alloc] initWithData:retData encoding:NSUTF8StringEncoding];
if([retString rangeOfString:@""error""].length) return;
NSLog(@" longUrl equals %@ ", longURL);
NSLog(@" retString equals %@ ", retString);
urlText.text = retString;

你需要防御性地把它变成一个NSDictionary (JSON语法是一个字典,或一个对象,无论你想叫它。

google API for Objective-C支持JSON解析,将响应转换为对象。

你可以在这里找到。

如果你只需要解析JSON,我推荐JSONkit或TouchJSON。

它们的工作方式非常相似,你给它们字符串,它们会给你返回对象。

这些库的个人使用信息可以在相应项目的自述文件中找到,在那里你会发现它们是多么容易使用。

然后使用:

访问不同的值
NSString *short URL = [object valueForKey:@"id"];

这是与REST服务交互的最佳方式。

希望有帮助!

相关内容

  • 没有找到相关文章

最新更新