2014-04-23 107 views
1

在我们的项目,我们从服务JSON序列返回NULL

最大的可能是我的问题被问了很多次服用值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的问题。任何人都可以提出解决方案

感谢, 乌米特

+1

检查是'jsonData'是'nil'。如果是,记录'错误'。 – rmaddy

+0

我不确定jsonData是否为零,请尝试'NSLog(@“%@”,jsonData);'确定。 – user3386109

+0

不幸的是NSLog(@“JsonData:%@”,jsonData); (null)@rmaddy –

回答

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); 
+0

这是为我工作。谢谢。 –