使用 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

ios开发的基础语言是啥

为啥说Objective-C很难学

Objective C:何时在 App Delegate 中使用方法以及何时在 View Controller 中使用方法

如何从我的 IOS(Objective c) 应用程序分享微信应用程序上的文本?

Objective C如何在App内部调用外部dylib 和 framwork