在使用Swift的Freddy JSON中,存在扩展......
"通过将collection
的每个元素复制到新的Array
"来创建实例,如以下Freddy注释中所定义的那样...
public init<Collection>(_ collection: Collection) where Collection : Collection, Collection.Element == Freddy.JSON
// Create an instance initialized with `elements`.
public init(arrayLiteral elements: Freddy.JSON...)
鉴于我已有数据,这个初始值设定器是如何使用的?以下通常的方式转换数据很好,但我不确定将数据复制为集合的语法。
let json = try JSON(data: data)
如果有帮助,我的目的是获取每个数组的内容并从中创建一个新对象。
[{
"array1": [{
"array1keys": "example",
}],
"array2": [{
"array2keys": "example"
}]
}]
答案 0 :(得分:0)
为什么不使用Swift开箱即用的Codable协议?
鉴于你的json
let data = """
[
{
"array1": [
{
"array1keys": "example",
}
],
"array2": [
{
"array2keys": "example"
}
]
}
]
""".data(using: .utf8)!
我们可以定义代表您数据的类型
typealias SubElement = [String:String]
typealias Element = [String:[SubElement]]
typealias Response = [Element]
最后我们可以解码你的json
if let response = try? JSONDecoder().decode(Response.self, from: data) {
print(response)
}
[["array1": [["array1keys": "example"]], "array2": [["array2keys": "example"]]]]
通常我建议定义符合
Codable
的结构,这使得代码更容易阅读。但在这种情况下,这是不可能的,因为没有固定名称的字段。