我现在整个周末都在尝试将简单的数据从mysql数据库返回到Json中,进入我的应用程序,成为一个漂亮的UItextview。
这是我的PHP代码:
<?PHP
include("Connection.php");
$query="Select * from Api";
$result=mysql_query($query,$conn);
while ($row1 = mysql_fetch_array($result)){
$users[]=$row1;
}
$body = array();
if (!empty($users))
$body['users'] = $users;
if (!empty($body))
echo json_encode ($body);
include("dbClose.php");
?>
这是我的Xcode代码:
NSURL *url = [NSURL URLWithString:JSON];
NSLog(@"jsonreturn#########=%@",url);
NSError *error = nil;
NSData *jsondata = [NSData dataWithContentsOfURL:url];
NSDictionary *dic = nil;
if (!jsondata)
{
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error" message:@"Data not found !!." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
return;
}
// NSLog(@"data %@",data);
dic = [NSJSONSerialization JSONObjectWithData:jsondata options:0 error:&error];
[_userEmail removeAllObjects];
[_userFirst removeAllObjects];
NSLog(@"Dictionary data %@",dic);
for (NSDictionary *obj in [dic objectForKey:@"users"]) {
;
[_userEmail addObject:[obj valueForKey:@"Email"]];
}
user_mail.text = [NSString stringWithFormat:@"%@", [dic valueForKey: @"Email"]];
这是Xcode中的登录,您可以在此处看到电子邮件,因此您可以看到数据解析很好:
Dictionary data {
users = (
{
0 = 1;
1 = "dani't";
10 = "";
11 = "";
12 = 0;
2 = "l'f)'U008f'U00d0'U00b7`'U00fcR'U0092'U00bauU'U00f2]";
3 = dani;
4 = dani;
5 = "";
6 = "";
7 = "";
8 = dani;
9 = dani;
Country = "";
Email = "dani't";
"First_Name" = dani;
这是电子邮件的应用程序UI文本视图结果:
(null)
因此,正如您所看到的,我在这里的问题是如何从 NSDictionary 中获取值以在应用程序中显示为文本视图,我不想使用表格视图或上面代码以外的内容,所以,请坚持这一点,任何帮助都会很棒谢谢大家。
这是非常基本的,我刚刚得到了我的数据库,想要选择一些代码并将该代码返回到我的应用程序中到 UItextview 任何其他方法都会很棒,每种方式对我来说都只是告诉我如何做到这一点,我在周末疯狂地寻找解决方案,没有什么只是网络上没有 json 和 textview!。
如果日志中的输出是这样的:
Dictionary data {
users = (
{
0 = 1;
1 = "dani't";
10 = "";
11 = "";
12 = 0;
2 = "l'f)'U008f'U00d0'U00b7`'U00fcR'U0092'U00bauU'U00f2]";
3 = dani;
4 = dani;
5 = "";
6 = "";
7 = "";
8 = dani;
9 = dani;
Country = "";
Email = "dani't";
"First_Name" = dani;
}
)}
然后,数据字典包含一个带有键"users"的字典。
在"用户"字典中,您有一个数组。在日志 "(" 等于数组中,对于 json 字符串,"{" 等于字典。
在用户数组中,对象 0 有一个包含多个键的字典(0,1,10,11..Country,电子邮件...)
因此,要将键"电子邮件"的值放在标签中,您可以这样做:
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsondata options:0 error:&error];
NSArray *users = [dic objectForKey:@"users"];
NSDictionary *firstUser = [users objectAtIndex:0];
user_mail.text = [NSString stringWithFormat:@"%@", [firstUser valueForKey: @"Email"]];
您可以迭代数组以对"users"数组中的所有对象执行此操作,或者如果您知道您想要第一个或最后一个,则可以执行NSDictionary *firstUser = [users firstObject]或NSDictionary *firstUser = [users lastObject]。
我希望这有所帮助。