如何从ios应用程序中的json获取值

时间:2014-07-10 13:08:59

标签: ios json

我通过以下方法从服务器获得响应:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data{
    NSString * result;
   NSMutableData * _responseData = [[NSMutableData alloc]init];
    [_responseData appendData:data];

    NSDictionary *dataAsString=(NSDictionary*)[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"data in register reponse : %@",dataAsString);

我在日志中得到这个json值:

dataAsString : {"status":"error","message":"MySQL Error: 1062 : Duplicate entry 'raushan@gmail.com' for key 'loginEmail'"}

现在我想从字符串中获取特定值,例如。关键"状态": 像下面的方法:

 Nsstring * result=[dataAsString objectForKey:@"status"];
 NSLog(@"result : %@",result);

但是我没有得到结果,我的应用程序崩溃了。我不知道这有什么问题。我尝试了很多方法,但没有成功。

请帮帮我。如何从dataAsString检索值。 谢谢你宝贵的时间。

2 个答案:

答案 0 :(得分:1)

NSJSONSerialization *json;
NSDictionary *dataJson;
NSError *error;

json=[NSJSONSerialization JSONObjectWithData:_responseData
                          options:NSJSONReadingMutableLeaves
                          error:&error];

dataJson=[[NSDictionary alloc]init];
dataJson=(NSDictionary *)json;
NSString * result=[dataJson valueForKey:@"status"];

如果您遇到更多问题,请参阅此linkthis

答案 1 :(得分:0)

NSDictionary *parsedObject = [NSJSONSerialization JSONObjectWithData:receiveddata options:0 error:&localError];
NSDictionary *result = [dataAsString objectForKey:@"result"];
NSString *statusString = [result objectForKey:@"status"];