繁体   English   中英

从JSON响应解析

[英]Parse from JSON response

我收到JSON回应

(
        {
        Response = success;
        UserId = 287;
    }
)

我试图用下面的代码解析用户ID

NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:receivedData options:0 error:&e];
    NSLog(@"%@", dataDictionary);
    NSString *useridstring=[dataDictionary valueForKey:@"UserId"];

但是正在获取用户ID ( 287 ) 请建议我如何获取不带括号的用户ID

您需要从JSON响应中获取整数值。

int userid = [[dataDictionary valueForKey:@"UserId"] intValue];

如果在整数响应中也包含括号,那么接收到JSON响应就存在问题。 要解决此问题,您可以使用-

NSString *useridstring=[dataDictionary valueForKey:@"UserId"];
int userid = [[useridstring substringWithRange:NSMakeRange(1, useridstring.length - 2)] intValue]

编辑-

您得到一个响应数组,为此您必须使用-

int userid = [[dataDictionary valueForKey:@"UserId"] firstObject];

您的回答不是字典,而是数组。 因此,您的代码应如下所示:

NSArray *dataArray = [NSJSONSerialization JSONObjectWithData:receivedData options:0 error:&e];
NSLog(@"%@", dataArray);
NSDictionary *dataDictionary = dataArray[0]; //Same as objectAtIndex:
NSString *userIDString = dataDictionary[@"UserID"]; //Same as objectForKey:
//If you're still getting parens try this:
//int userIDInt = [dataDictionary[@"UserID"] intValue];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM