2016-02-12 25 views
0

我有以下的JSON,如何使用目標c解析iOS中的jsonstring?

{ 
    "method":"login", 
    "data":{ 
     "username":"abc", 
     "password":"123" 
    } 
} 

我用下面的代碼來分析它,

NSString* loginMethod= json[@"method"]; 
NSString* credentials= json[@"data"]; 
NSLog(@"credentials %@",credentials); 

我能夠獲得關鍵數據的價值,但我不能夠獲得用戶名和密碼的價值。如何獲得這些值?

+0

是JSON是字符串或響應的任何API調用 – vaibby

+0

我只是加載本地JSON文件 –

+0

檢查我的回答如下字符串 – vaibby

回答

1

如果JSON是在respose數據,那麼

NSDictionary *jsonDic = [NSJSONSerialization JSONObjectWithData:request.responseData options:kNilOptions error:&err]; 

如果JSON是字符串,則

NSDictionary *jsonDic = [NSJSONSerialization JSONObjectWithData:[str dataUsingEncoding:NSUTF8StringEncoding]; options:kNilOptions error:&err]; 


NSString* loginMethod= [jsonDic objectForKey:@"method"]; 

NSString* usename= [[jsonDic objectForKey:@"data"]objectForKey:@"username"]; 
NSString* password= [[jsonDic objectForKey:@"data"]objectForKey:@"password"]; 
2

變化

NSString* credentials= json[@"data"]; 

NSDictionary* credentials= json[@"data"]; 

然後

NSString *username = credentials[@"username"]; 
1

您可以通過credentials[@"username"]credentials[@"password"]獲取這些值。

1

不喜歡

原因,它deverives像嵌套Dictionry

NSString* loginMethod= json[@"method"]; // this is correct 

NSString* username= json[@"data"][@"username"]; 
NSString* password= json[@"data"][@"password"]; 

選擇-2

NSString* loginMethod= json[@"method"]; 

// This isNested Dictionary so Do like 
NSDictionary* temp= json[@"data"]; 
NSString *username = temp[@"username"]; 
NSString * password = temp[@"password"];