You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:52:11