使用 Objective C iOS App 在 textview 中显示 JSON 值
Posted
技术标签:
【中文标题】使用 Objective C iOS App 在 textview 中显示 JSON 值【英文标题】:Show JSON values in textview with Objective C iOS App 【发布时间】:2014-03-24 18:33:15 【问题描述】:我是 Objective C 的新手,但我试图让我的 JSON 数据显示在我声明的文本视图中。 (textview 称为 textview)这是我从 php 页面发送的 JSON 数据:
"userName": "derekshull",
"userBio": "This is derekshulls bio",
"userSubmitted": "15"
这是我的 Objective C 代码,它请求 PHP url 并获取 JSON 代码:
NSURL *myURL = [[NSURL alloc]initWithString:@"http://domain.com/json.php"];
NSData *myData = [[NSData alloc]initWithContentsOfURL:myURL];
id myJSON = [NSJSONSerialization JSONObjectWithData:myData options:NSJSONReadingMutableContainers error:nil];
NSArray *jsonArray = (NSArray *)myJSON;
for (id element in jsonArray)
textview.text = [NSLog(@"Element: %@", [element description])];
JSON 正在调试库中加载。我通过***和互联网搜索了3天,这就是我想出的,但我不明白为什么它没有打印到textview。
【问题讨论】:
它是否在文本视图中打印任何内容(一行)?您应该添加错误参数并记录它。 我试图快速查找它。我又是新人。我将如何添加错误参数并使用我拥有的代码记录它?会是这样吗:NSError *anyError; BOOL success = [NSLog(@"Element: %@", [element description])]; if (!success) NSLog(@"Write failed with error: %@", anyError); // present error to user
【参考方案1】:
NSURL *myURL = [[NSURL alloc]initWithString:@"http://domain.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: %@",element];
// text view will contain last element from the loop
else
textview.text = [NSString stringWithFormat:@"Error--%@",[error description]];
【讨论】:
这做了点什么!它为我们提供了我们试图获取的数据的描述,即用户名。但是,我们如何获得该描述的价值? @user3093592,请发布“jsonArray”日志。那我只能告诉你。或者给我一个原始网址。 我相信我在我的问题的顶部发布了这个。 @user3093592 对不起我的错误,在这种情况下你不需要描述,只需要元素。检查更新的答案。【参考方案2】:如果您只想要文本视图中的 JSON 文本,则不要使用 NSJSONSerialization
对其进行反序列化,只需将字符串直接放入:
NSString *string = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding];
textview.text = string;
【讨论】:
以上是关于使用 Objective C iOS App 在 textview 中显示 JSON 值的主要内容,如果未能解决你的问题,请参考以下文章
tableview 图像未正确显示 - iOS 8 iPhone App Objective C
Objective C:何时在 App Delegate 中使用方法以及何时在 View Controller 中使用方法