在我们的项目中,我们将值视为来自服务的json
很可能我的问题被多次询问,但我找不到任何解决方案。
以下是代码块:
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"Response ==> %@", responseData);
NSError *error = nil;
NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:urlData options:NSJSONReadingMutableContainers error:&error];
NSString* userID = [jsonData objectForKey:@"user_ID"];
NSLog(@"Success: %ld userID: %ld",(long)success, (long)userID);
日志:
回复代码:200
回复==>
{" USER_ID":4}
成功:0 userID:0
正如您所看到的,我想将json对象转换为字符串,但是当我打印出jsonData的内容时,它返回null我想我有一个JSONSerializaton的问题。有人可以建议解决方案吗?
谢谢, 乌米特
答案 0 :(得分:0)
只需使用以下代码进行测试即可。您应该记录错误并检查响应数据,它可能包含一些无效的编码。
const char *jsonStr = "{\"user_ID\":4}\n";
NSData *jsonData = [NSData dataWithBytes:jsonStr length:strlen(jsonStr)];
NSError *error = NULL;
NSDictionary *jsonObj = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
NSNumber *userIDObj = [jsonObj objectForKey:@"user_ID"];
NSInteger userID = [userIDObj integerValue];
NSLog(@"=========>User ID: %d", userID);