2015-04-23 52 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