当前位置: 首页 > 面试题库 >

如何在iOS App中解析JSON

蒋鸿文
2023-03-14
问题内容

我收到了来自Twitter的字符串形式的回复,

我需要将注释发送到数组中,

这是一个字符串的例子

[{"geo":null,"coordinates":null,"retweeted":false,... 
"text":"@KristinaKlp saluditos y besos d colores!"},{"geo":null,"coordinates...

所以我真正需要的是“文本”之后的帖子:“ =

@KristinaKlp saluditos和besos d colores!

因此,如何获取字符串并解析它,以便希望将所有消息放入数组中?

非常感谢!


问题答案:

我尚未在iOS App中完成JSON自身的解析,但是您应该能够使用json-
framework之
类的库。这个库可以让您轻松地解析JSON并从字典/数组生成JSON(这实际上是JSON的全部组成)。

SBJson文档:

JSON通过以下方式映射到Objective-C类型:

  • null-> NSNull
  • 字符串-> NSString
  • 数组-> NSMutableArray
  • 对象-> NSMutableDictionary
  • true-> NSNumber的-numberWithBool:是
  • false-> NSNumber的-numberWithBool:NO
  • 最多19位整数-> NSNumber的-numberWithLongLong:
  • 所有其他数字-> NSDecimalNumber

由于Objective-C没有专用于布尔值的类,因此它们变成了NSNumber实例。但是,由于这些都是使用-
initWithBool:方法初始化的,因此它们可以正确地往返返回JSON。换句话说,它们不会突然变成0或1;它们将再次表示为“ true”和“
false”。

作为优化,最大长度为19位(有符号的长整数)的最大长度的整数将变为NSNumber实例,而复杂的整数将变为NSDecimalNumber实例。因此,我们可以避免任何精度损失,因为JSON允许大量数字。

@page objc2json Objective-C到JSON

通过以下方式将Objective-C类型映射到JSON类型:

  • NSNull->空
  • NSString->字符串
  • NSArray->数组
  • NSDictionary->对象
  • NSNumber的-initWithBool:YES-> true
  • NSNumber的-initWithBool:NO-> false
  • NSNumber->数字

@note在JSON中,对象的键必须是字符串。NSDictionary键不是必需的,但是尝试将具有非字符串键的NSDictionary转换为JSON将引发异常。

使用-numberWithBool:方法创建的NSNumber实例将转换为JSON布尔值“ true”和“
false”,反之亦然。任何其他NSNumber实例都将按照您期望的方式转换为JSON数字。

讲解

有教程吗?是! 这些都是第三方人员提供的所有教程:

iPhone的JSON框架 -John
Muchow撰写的Flickr教程,分为三部分。iPhone上的基于HTTP的JSON -Dan Grigsby。从AS3到Cocoa
touch:Andy Jacobs的JSON。

您还可以签出其他库,例如TouchJSON,JSONKit和Yet Another JSON Library



 类似资料:
  • 问题内容: 我在s3中有很多gzip日志文件,其中有3种类型的日志行:b,c,i。我和c都是单层json: 类型b是深度嵌套的json。我碰到这个要点,谈论要编译一个罐子来完成这项工作。由于我的Java技能还不算出色,因此我真的不知道该怎么做。 由于类型i和c并不总是相同的顺序,因此很难在生成正则表达式中指定所有内容。Pig是否可以处理JSON(在gzip文件中)?我正在使用在Amazon Ela

  • 问题内容: 我想创建一个新闻应用程序,并且已将newsapi.org用作源。 我正在尝试获取Http库提供的JSON数据。 我在下面提供了完整的代码。 它不会给我任何错误,但不会加载任何数据,当我打印数据时,它可以打印所有内容,但无法显示。 我不是什么问题,但是我所有的项目都已停止解决此问题。 我正在寻找此代码的解决方案,因为它不起作用。 网络助手: 问题答案: 问题在于显示文章。yaa也正如@I

  • 问题内容: 我的项目目前正在python中接收JSON消息,我需要从中获取一些信息。为此,我们将其设置为字符串中的一些简单JSON: 到目前为止,我一直在使用列表生成JSON请求,但是与此相反,我认为我需要使用。但是我没有那么幸运。谁能为我提供一个片段,该片段将在上述示例的输入中返回? 问题答案: 很简单:

  • 问题内容: 我从服务中收到一个很深的JSON对象字符串,必须将其解析为JSON对象,然后将其映射到类。 如何在Kotlin中将JSON字符串转换为对象? 在映射到各个类之后,我使用了Jackson的StdDeserializer。当对象具有必须反序列化为类的属性时,就会出现问题。我无法在另一个反序列化器中获取对象映射器,至少我不知道该怎么做。 在此先感谢您的帮助。最好是在本地,我试图减少所需的依赖

  • 问题内容: 我想读这行,但是因为它以我开始有些困惑 我只需要使用“名称”并将所有另存为一个字符串。(字符串值将是:Jeff Bridges,Charles Grodin,Jessica Lange,John Randolph,Rene Auberjonois)。 这是我的代码: 问题答案: 如果您使用的是“名称”,为什么您的代码片段看起来像是试图获取“字符”的尝试? 无论如何,这与任何其他类似于列

  • 我从一个服务接收到一个相当深的JSON对象字符串,我必须将其解析为一个JSON对象,然后将其映射到类。 提前感谢您的帮助。最好是在本地,我试图减少我需要的依赖项的数量,所以如果答案只用于JSON操作和解析,这就足够了。

  • 我使用以下语法: 我得到:

  • 问题内容: 我正在使用一个API,该API返回如下所示的JSON 在Swift中,我使用两个函数来获取并解析JSON 然后我用 可以很好地解析JSON。当我打印出 我得到了数组的所有内容。但是,我无法访问每个单独的索引。我很肯定这是一个数组,因为我之间 返回正确的长度。但是,如果我尝试通过使用访问单个索引 XCode关闭语法高亮显示并给我以下信息: 并且代码将无法编译。 这是XCode 6的错误,