UITextView打印JSON标识符而不是所需的解析数据

时间:2014-03-25 02:39:01

标签: php objective-c json xcode xcode5

与标题一样,我的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.

1 个答案:

答案 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"]];

询问某些事情是否不清楚!

干杯!