2016-08-08 215 views
3
文本视图显示JSON数据

我得到响应从服务器这样在斯威夫特

[{ 

    "images":[{ 
     "title_de":"sdfs", 
     "title_it":"dsdfs", 
     "title_fr":"dfsf", 
     "approved":"true", 
     "title_ru":"sdsf", 
     "title_ko":"sdfs", 
     "title_jp":"sfsdf", 
     "title_es":"sdfs", 
     "title_pt":"dfs", 
     "folder_id":29, 
     "title_en":"title image", 
     "title_hi":"sdfss", 
     "image_used_count":"0", 
     "updatedtime":"1470641760", 
     "folder_empty":"false", 
     "id":115, 
     "is_folder":"false" 
    }, 

    { 
     "title_de":"tests Ashdod", 
     "title_it":"test cv", 
     "title_fr":"tests Asgard", 
     "approved":"true", 
     "title_ru":"testvxcv", 
     "title_ko":"testvcxv", 
     "title_jp":"tests cv", 
     "title_es":"testvcxv", 
     "title_pt":"test cox", 
     "folder_id":19, 
     "title_en":"testsds", 
     "title_hi":"testvxcv", 
     "image_used_count":"0", 
     "updatedtime":"1470401264", 
     "folder_empty":"false", 
     "id":99, 
     "is_folder":"false" 
    }] 
}] 

现在我想显示在文本视图这种反应,因为它是和这里是我的代码

self.tv_response.text = String(format:"%@", JSON as! String) 

但收到的错误

无法投类型的值 '__NSCFArray'(0x1025a8ae0)到 '的NSString'(0x101c13b20)。

我也尝试

self.tv_response.text = NSString(format:"%@", JSON as! String) 

但不工作,请帮我...

+1

从响应你想要什么TextView中显示? –

+0

我想显示总回复。意味着全数组 –

回答

3

你的反应是array所以你不能直接将其转换为string

self.tv_response.text = "\(JSON as! NSArray)" 

self.tv_response.text = "\(JSON as! [[String: AnyObject]])" 
+1

你不应该在Swift中使用'String(format:)'。更好的方法是'self.tv_response.text =“\(JSON as!NSArray)”' – kabiroberai

+0

是的它的工作谢谢你的帮助:) –

+0

@kabiroberai好吧现在:) –

1

你不应该使用在斯威夫特String(format:_:)反正。更好的方法是self.tv_response.text = "\(JSON)"。这使用字符串插值,它可以让您方便地创建任何类型的值的字符串。

但是,如果您必须String(format:_:)一起使用,您可以执行以下操作:self.tv_response.text = String(format:"%@", JSON)

-2
NSString(format:"%@", JSON as! String) 

这里JSON文件不是String文件它是一个Array。 你解开它(!)。因此,使用

String(format:"%@", JSON) 

否则

self.tv_response.text = "\(JSON)" 
+0

请不要直接复制他人的答案 – kabiroberai

+0

@kabiroberai我不是一个愚蠢的做到这一点。我的意思是不要用字符串打开数组。首先我没有看到你的答案。我刚刚为这个问题写了一个回应。您可能会直接复制他人的答案并在任何地方发帖。不要评判他人。你读过我的回答了吗?我试图告诉他不要直接使用(!),这不是一个好的做法,要么使用“如果让”或“警卫”,并停止像未成熟的行为。 Stackover流程是一个平台,可帮助所有开发人员将这种行为保持在社交媒体中的某个位置。学会尊重每个人,谢谢 – DSAjit