2015-04-23 59 views
-1

这里我从WebServices获取数据,但是我需要单个密钥data.the以下格式我在WebServices上获得的数据。关于从Webservices获取数据的问题

{ 
    aps =  { 
     alert = "{\"user_id\":\"92\",\"ref_id\":\"58\",\"ref_name\":\"name\",\"date\":\"2015-04-23\",\"time\":\"16:27\",\"lat\":\"17.409769\",\"lon\":\"78.460849\",\"msg\":\"text message here\"}"; 
     sound = default; 
    }; 

在这里我得到NSMutableDictionary

NSMutableDictionary* json =[userInfo valueForKey:@"aps"]; 
     NSLog(@"%@",json); 

的JSON我得到,

 { 
     alert = "{\"user_id\":\"92\",\"ref_id\":\"58\",\"ref_name\":\"name\",\"date\":\"2015-04-23\",\"time\":\"16:27\",\"lat\":\"17.409769\",\"lon\":\"78.460849\",\"msg\":\"text message here\"}"; 
    sound = default; 
} 

这里得到alert

NSDictionary* json=[json valueForKey:@"alert"]; 
     NSLog(@"%@",json); 

现在我得到这样的回应,

{ 
     "user_id": "92", 
     "ref_id": "58", 
     "ref_name": "Name", 
     "date": "2015-04-23", 
     "time": "15:30", 
     "lat": "17.409769", 
     "lon": "78.460849", 
     "msg": "Text message here" 
    } 

,但我会尝试得到msg关键,在这里,我开发了这样的代码,

NSString *msg=[json objectForKey:@"msg"]; 
      NSLog(@"%@",msg); 

问题我没有得到msg键,该错误信息是

reason: '[<__NSCFString 0x15e4ab10> valueForUndefinedKey:]: this class is not key value coding-compliant for the key msg.' 

我怎么能从WebServices获得NSCFString,你能告诉我我怎么可以在这里,谢谢。

+0

什么是Json,什么是JSON?什么是完全记录的? – Larme

+0

尝试打印Json内容的所有密钥并检查“msg”键是否存在或不存在! – vivekDas

+0

我尝试了所有密钥,但它不工作@vivek –

回答

0

使用此代码..

NSString *str = @"{\"Json\":{\"user_id\":\"92\",\"ref_id\":\"58\",\"ref_name\": \"Name\",\"date\": \"2015-04-23\",\"time\": \"15:30\",\"lat\": \"17.409769\",\"lon\":\"78.460849\",\"msg\": \"Text message here\"}}"; 
NSError *jsonError; 
NSData *objectData = [str dataUsingEncoding:NSUTF8StringEncoding]; 
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData 
                options:NSJSONReadingMutableContainers 
                 error:&jsonError]; 
NSLog(@"%@",[json objectForKey:@"Json"]); 

NSDictionary *dict = [json objectForKey:@"Json"]; 

NSLog(@"%@",[dict objectForKey:@"msg"]); 

NSString *mesg =[dict objectForKey:@"msg"]; 

NSLog(@"%@", mesg); 
+0

我的代码中有什么问题?你能告诉我吗?它为我工作..按照他的要求。 – Yuyutsu

+0

如果我犯了什么错误。请编辑我的代码并纠正我。这对我将来会有所帮助。 :) 请。 – Yuyutsu

+0

它不工作,我不投票你的答案@yuyutsu –

-2

,如果你想打印味精只需用这样的代码

NSString* mesg=[Json valueForKey:@"msg"]; 
    NSLog(@"%@",mesg); 

或者明确地告诉我,你想做什么?

+0

我只需要从服务mesg数据。@ deepak –

-2

你做错了真正尝试以下。

NSData *data = "Your response data"; 
NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
NSError *error = nil; 
NSMutableDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data 
                   options:NSJSONReadingMutableContainers 
                    error:&error]; 

现在检查“jsonDict”的值,并告诉?

+0

同样的问题@vivek –

+0

你可以打印什么“jsonDict”包含? – vivekDas