在我正在创建的应用程序中,我现在使用goo.gl的url shortener api来缩短网址。我有它几乎工作,我可以发送longUrl来检索NSString中的短一个,但它是这种格式:
{
“kind”:“urlshortener#url”,
“id”:“http://goo.gl/something”,
“longUrl”:“http:// somethinglonggggg /”
}
我只是想知道是否有办法从中获取id(短网址)。
这是我到目前为止所拥有的:
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;
答案 0 :(得分:2)
你明确需要将其转换为NSDictionary(JSON语法用于字典或对象,但是你想要调用它。
Objective-C的Google API支持JSON解析,将响应转换为对象。
你可以找到它here。
如果您只需要解析JSON,我建议JSONkit或TouchJSON。
他们都以非常相似的方式工作,你给他们字符串,他们会给你回来的对象。
有关库的个别用法的信息可以在相应项目的自述文件中找到,您将发现它们的易用性。
然后您将使用以下方式访问不同的值:
NSString *short URL = [object valueForKey:@"id"];
这是与REST服务交互的最佳方式。
希望它有所帮助!