与标题一样,我的UITextView设置为打印在" userName"中找到的数据。它不是表现得恰当,而是打印" userName"。
PHP代码:
<?php
header('Content-Type: application/json');
$arr = array ('userName'=>'derekshull', 'userBio'=>'This is derekshulls bio','userSubmitted'=>'15');
echo json_encode($arr);
?>
目标C:
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *myURL = [[NSURL alloc]initWithString:@"http://techinworship.com/json.php"];
NSData *myData = [[NSData alloc]initWithContentsOfURL:myURL];
NSError *error;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:myData options:NSJSONReadingMutableContainers error:&error];
if(!error)
{
for (id element in jsonArray) {
textview.text = [NSString stringWithFormat:@"%@", [element description]];
// text view will contain last element from the loop
}
}
else{
textview.text = [NSString stringWithFormat:@"Error--%@",[error description]];
}
}
我在这里缺少什么?此外,运行时,应用程序不会崩溃并给出错误。但是,DeBug区域记录了以下内容。
2014-03-24 20:20:53.258 testtest[11434:60b] Unknown class textview in Interface Builder file.
答案 0 :(得分:1)
我目前没有可用的OSX计算机,所以我无法评估我的代码。
您的PHP代码中的数组似乎是一个关联数组,JSON将类似。当您在Obj-C代码中解析JSON字符串时,尝试将其分配给NSDictionary,这样您就可以访问关联数组。
NSDictionary *jsonArray = [NSJSONSerialization JSONObjectWithData:myData options:NSJSONReadingMutableContainers error:&error];
使用jsonArray
中的数据时,请使用NSDictionary方法objectForKey
获取所需的值。
例如,要获得userName
的值,您可以这样做:
[jsonArray objectForKey: @"userName"] // jsonArray is not actually a array, but a dictionary now
要更改textview的文本,您可以执行以下操作:
textview.text = [NSString stringWithFormat:@"%@", [jsonArray objectForKey: @"userName"]];
询问某些事情是否不清楚!
干杯!