另一个关于解析Json数据的问题。
以前我使用 NsDictionary 来存储我的用户,以便他们可以登录我的应用程序,这并不是很理想,因为我必须发布更新才能添加新用户,所以我希望创建一种方法来解析Json数据,查看服务器上是否有匹配的用户。我已经创建了 WCF,它正在像这样返回数据..
{
"RetrieveUsersResult": [
{
"Active": true,
"Email": "email@email.co.uk",
"ID": 2,
"Password": "password",
"UserName": "user1 "
},
{
"Active": false,
"Email": "email@email.com",
"ID": 3,
"Password": "password2",
"UserName": "user2 "
}]
}
所以这是返回我的用户列表。我创建了一个方法来检索数据并将其存储到数组中。
- (NSMutableArray *)parseJSONUsers{
NSString *urlAsString = @"webaddress";
NSURL *url = [NSURL URLWithString:urlAsString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSMutableArray *retval = [[NSMutableArray alloc]init];
[NSURLConnection
sendAsynchronousRequest:urlRequest
queue:[[NSOperationQueue alloc] init]
completionHandler:^(NSURLResponse *response,
NSData *data,
NSError *error)
{
if ([data length] >0 && error == nil)
{
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSMutableArray *retrieveUsersResultArr = [NSMutableArray arrayWithArray:[jsonDict objectForKey:@"RetrieveLocationsResult"]];
//Need to do something with retrieveUsersResultArr Here
} else if ([data length] == 0 && error == nil)
{
NSLog(@"Nothing was downloaded.");
}
else if (error != nil){
NSLog(@"Error = %@", error);
}
}];
return retval;
[retval release];
[urlRequest release];
[url release];
[urlAsString release];
}
你能帮我检查一下 retrieveUsersResultArr 中是否有匹配用户名文本字段和密码文本字段的用户。
最佳答案
执行此操作的正确方法是将用户名和密码发送到 WCF Web 服务并在服务器端执行身份验证。在发送之前在应用程序中散列密码。更好的是,通过 HTTPS 将凭据发送到服务器。
按照您现在的做法,您冒着将每个用户的电子邮件地址和密码暴露给几乎所有发现您的不安全网络服务的人的风险。
关于ios - 使用 Json Data iOS 登录 App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20330819/