以下是JSONSerialization.data
的类型签名:
class func data(withJSONObject obj: Any, options opt: JSONSerialization.WritingOptions = []) throws -> Data
奇怪的是JSONSerialization.WritingOptions
是一个结构,而默认值[]是一个数组,而不是匹配。有什么不对吗?
答案 0 :(得分:3)
JSONSerialization.WritingOptions
符合OptionSet
协议,该协议继承自SetAlgebra
,并且继承自ExpressibleByArrayLiteral
。
因此,您可以从(可能为空)数组 literal 创建<jsp:include page="${headURL}"></jsp:include>
值(使用
init(arrayLiteral elements: Self.Element...)
初始值设定项):
JSONSerialization.WritingOptions
对于阅读选项(其中包含多个选项)也是如此 一个可能的值),例如:
JSONSerialization.data(withJSONObject: obj, options: [])
JSONSerialization.data(withJSONObject: obj, options: [.prettyPrinted])
以及许多其他JSONSerialization.jsonObject(with: json, options: [.allowFragments, .mutableLeaves])
类型。
此外,OptionSet
继承自RawRepresentable
使用整数 OptionSet
。表示每个可能的值
作为一个整数,其中0,1或多位设置为1。
但请注意上述示例中的RawValue
或[]
array literals (从中创建[.prettyPrinted]
值),而不是数组。这不会编译:
JSONSerialization.WritingOptions
答案 1 :(得分:0)
Swift 4 :这有效!
JSONSerialization.data(withJSONObject: data, options: [])