Swift中Freddy JSON集合转新数组初始化器的使用方法咨询
使用Freddy的集合初始化器创建JSON数组实例
嘿,我来帮你梳理下怎么用Freddy里这两个初始化器来创建JSON数组实例,其实很直观,分两种场景来看:
1. 使用集合类型初始化器(init(_ collection: Collection))
这个初始化器接受任意遵循Collection协议且元素为Freddy.JSON的集合(比如数组、集合Set等),直接把集合里的元素打包成一个JSON数组实例。
举个实际例子:
// 先准备几个单独的JSON元素 let username = JSON.string("johndoe") let userAge = JSON.int(32) let isVerified = JSON.bool(true) // 用Swift数组(Array是Collection的子类)来初始化JSON数组 let userProfileJSON = JSON([username, userAge, isVerified]) // 甚至可以用Set来初始化,只要元素是JSON类型 let jsonElementSet: Set<JSON> = [username, isVerified] let setBasedJSONArray = JSON(jsonElementSet)
2. 使用数组字面量初始化器(init(arrayLiteral elements: JSON...))
这个初始化器支持直接传入可变数量的JSON元素,或者利用Swift的字面量推断特性,直接用数组字面量赋值给JSON类型,写法更简洁。
示例如下:
// 直接传多个JSON元素到arrayLiteral初始化器 let quickJSONArray = JSON(arrayLiteral: .string("coffee"), .int(5), .bool(false)) // 更简洁的写法:利用Swift的类型推断,直接用数组字面量赋值 let conciseJSONArray: JSON = [.string("tea"), .double(3.5), .array([.string("milk"), .string("sugar")])]
常规数据转换方式
如果你的原始数据是普通的Swift类型(比如[String]、[Int]),需要先把每个元素转换成Freddy.JSON类型,再用上面的初始化器生成JSON数组:
// 假设你有一个普通的Swift字符串数组 let fruitNames = ["Apple", "Banana", "Orange"] // 先把每个元素转成JSON.string,再传入集合初始化器 let fruitJSONArray = JSON(fruitNames.map { JSON.string($0) }) // 或者用字面量推断的方式一步到位 let anotherFruitJSON: JSON = fruitNames.map { .string($0) }
内容的提问来源于stack exchange,提问作者user1162328
相关产品推荐
相关产品推荐

