这是我第一次使用json结果并将其保存到对象作为我的目标。
我将此作为我的样本json。
{"corpUserWs":{"loginMsg":"User is locked out. Please request for your account to be unlocked.","requestStatus":0,"sessionId":"16gxtse746yqj"}}
我在这里有一个代码
NSData *data = [responseString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"%@",[json objectForKey:@"corpUserWs"]);
返回此结果
{
loginMsg = "User is locked out. Please request for your account to be unlocked.";
requestStatus = 0;
sessionId = 16gxtse746yqj;
}
但我想要的是将结果存储在我声明的对象中。具有3个属性的LogIn对象 - loginMsg,requestStatus,sessionId。
我试图研究如何获取值“loginMsg”或corpUserWs中的任何数据。请帮助我。
答案 0 :(得分:1)
这样的事情:
NSData *data = [responseString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSDictionary *data = (NSDictionary*)[json objectForKey:@"corpUserWs"];
LogIn *login = [[LogIn alloc] init];
login.loginMsg = data[@"loginMsg"];
login.requestStatus = data[@"requestStatus"];
login.sessionId = data[@"loginMsg"];
但您可能必须将值转换为正确的数据类型
答案 1 :(得分:0)
假设名为“LoginResult”的实体具有以下属性:
@interface LoginResult : NSObject
@property (nonatomic, retain) NSString* loginMsg
@property (nonatomic, retain) NSNumber* requestStatus;
@property (nonatomic, retain) NSString* sessionId;
@end
可以使用以下代码填充新实体:
-(LoginResult*)populateFromJson:(NSString*)responseString {
NSData *data = [responseString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
json = [json objectForKey:@"corpUserWs"];
LoginResult* result = [LoginResult new];
result.loginMsg = json[@"loginMsg"];
result.requestStatus = json[@"requestStatus"];
result.sessionId = json[@"sessionId"];
}
希望这有帮助!
答案 2 :(得分:0)
由于json字典中的键和模型对象的属性名称相同,因此您可以使用Key-Value-Coding来设置所有属性:
NSData *data = [responseString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
LoginResult* result = [LoginResult new];
for (NSString *key in jsonDict){
[result setValue:jsondict[key] forKey:key];
}