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

JSONSerialization选项有什么作用,它们如何更改jsonResult?

丁高峯
2023-03-14
问题内容

JSONSerialization在项目中经常使用。这是我的JSONSerialization代码示例:

let json = try JSONSerialization.jsonObject(with: data!, options: []) as? [String: Any]

注意 :缺少目的的选项,我通常在项目中使用它们。

我的问题是我不太确定这些功能options: []是什么?

我发现的有关选项的信息:

NSJSONReadingMutableContainers:

指定将数组和字典创建为可变对象。

NSJSONReadingMutableLeaves:

指定将JSON对象图中的叶字符串创建为NSMutableString的实例。

NSJSONReadingAllowFragments:

指定解析器应允许不是NSArray或NSDictionary实例的顶级对象。

注意2
:我在以下位置找到了这些定义:https
:
//developer.apple.com/reference/foundation/nsjsonreadingoptions

我的问题是 :有人可以解释一下这些选项之间的区别,我应该将它们用于什么,如果您可以向我展示这些选项的一些代码示例,那将是完美的:)。

任何帮助表示赞赏。

谢谢。


问题答案:

前两个选项的简短答案:

在Swift中忽略它们!

在Swift中,您可以仅通过var关键字使对象可变。

另一方面,在Objective-C中,您需要

  • NSJSONReadingMutableContainers使嵌套的集合类型可变NSArrayNSMutableArrayNSDictionaryNSMutableDictionary
  • NSJSONReadingMutableLeaves使值字符串可变→ NSMutableString

在Objective-C和Swift中,如果您只 读取 JSON,则根本不需要可变性。

NSJSONReadingAllowFragments如果接收到的JSON的根对象 不是 数组而 不是 字典,则第三个选项很重要。
如果它 数组或字典,则也可以省略该选项。

空括号对[]代表No optionsoptions在Swift 3+中可以省略该参数)。



 类似资料:
  • 问题内容: 在“ Python编程 ”中,提到了。我来自背景,以前没有听说过这个词。什么是? 在本示例的两行之间进行阅读(我已经链接了它,因为它很长),我认为这是使用多重继承来扩展类而不是“适当的”子类的一种情况。这是正确的吗? 为什么我要这样做而不是将新功能放入子类中?因此,为什么混合/多重继承方法比使用组合更好? 什么将mixin与多重继承分开?这仅仅是语义问题吗? 问题答案: 是一种特殊的多

  • 首先,我使用的是Ubuntu12.04,Eclipse Juno和maven 3.0.4(m2eclipse),我必须在一个从SVN存储库中获得的遗留项目中工作。

  • 问题内容: 今天,我浏览了该站点上的一些问题,发现提到了 以单例模式使用的这种解决方案声称具有线程安全性的优点。 我从未使用过,并且使用Java编程已经有两年多了。显然,他们改变了很多。现在,他们甚至在自己内部提供了对OOP的全面支持。 现在为什么要在日常编程中使用枚举?为什么? 问题答案: 当变量(尤其是方法参数)只能从一小部分可能的值中取出一个时,应始终使用枚举。例如类型常量(合同状态:“永久

  • 本文向大家介绍什么是React.forwardRef?它有什么作用?相关面试题,主要包含被问及什么是React.forwardRef?它有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 React.forwardRef 会创建一个React组件,这个组件能够将其接受的 ref 属性转发到其组件树下的另一个组件中。这种技术并不常见,但在以下两种场景中特别有用: 转发 refs 到 DOM 组件

  • 本文向大家介绍什么是zoom?它有什么作用?相关面试题,主要包含被问及什么是zoom?它有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 zoom是缩放比例,可以将元素进行缩放。 和css3中的transform:scale() 作用类似. 两者区别在于缩放的参照点不一样,zoom针对元素左上角,scale针对元素正中心

  • 问题内容: 精油 这到底是什么! 编辑:如果可以的话,请您写一两行并说明其工作原理? 问题答案: 试试这个简单的程序,命名为 并尝试执行 注意什么是argv。