-1

如何从以下代码中仅提取“令牌”值?我希望将此值保存到字符串中。

元是一个数组吗?如果是这样,我将如何从“令牌”值中提取数据?

谢谢你的帮助

 NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];


Response ==> {"meta":[],"data":{"token":"IVZ2ciRkbVtDLUl3YmhwOTkyXzpRR1M3LUUsRiElfWF6T3I6dCxsRWg6di1XcyR6OTUzZHhVazdLTEJ7blU5O258d2xRTXg0VUxwQXBlNHRSOXd2VXZ1aG1RfFhQQjJsSkkoc2IuOTFyYkYodyhAe2RldXR1aDF3RClXWyhoMiU="}}
2013-07-19 15:10:23.139 appName [11190:907] {
    data =     {
        token = "IVZ2ciRkbVtDLUl3YmhwOTkyXzpRR1M3LUUsRiElfWF6T3I6dCxsRWg6di1XcyR6OTUzZHhVazdLTEJ7blU5O258d2xRTXg0VUxwQXBlNHRSOXd2VXZ1aG1RfFhQQjJsSkkoc2IuOTFyYkYodyhAe2RldXR1aDF3RClXWyhoMiU=";
    };
    meta =     (
    );
}
4

3 回答 3

2

我相信数据是 JSON 格式的。在这种情况下,这应该有效。

NSError *error = nil;
NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:urlData options:0 error:&error];
NSString *token = [[responseDict objectForKey:@"data"] objectForKey:@"token"];
于 2013-07-19T14:22:26.210 回答
1

在你的情况下,meta是一个Array并且data是一个Dictionary。如果您的响应以 JSON 格式正确格式化,那么您可以使用以下示例代码获取TokenStringand metaArray

示例代码:

NSData *data = [NSData dataWithContentsOfURL:yourURL];
NSError* error = nil;
NSDictionary* responseDict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSString *token = [[responseDict objectForKey:@"data"] objectForKey:@"token"];
NSArray *meta = [responseDict objectForKey:@"meta"];
NSLog(@"\ntoken :: %@\nmeta :: %@",token,meta);

PS: 要了解有关 JSON 响应的更多信息,请查看此 答案

于 2013-07-19T14:22:51.427 回答
1

我会这样做:

NSData *responseData = [NSData dataWithContentsOfURL:yourURL];
NSString *token = [NSJSONSerialization JSONObjectWithData:responseData
  options:kNilOptions error:NULL][@"data"][@"token"];

nil如果有任何错误,它将是。

于 2013-07-19T14:27:26.113 回答