将JSON数据自动转换为Swift结构体定义
0
0
0
{
"name": "JSON转Swift工具",
"version": "1.0.0",
"description": "将JSON数据转换为Swift结构体",
"features": [
"JSON语法验证",
"一键转换",
"结果复制"
],
"settings": {
"indentation": 2,
"export": true
},
"stats": {
"conversionCount": 1000,
"averageTimeMs": 15.2
},
"created_at": "2023-10-01T12:00:00Z"
}
// ======================================================================== // Title: JSON转Swift工具配置 // Description: 存储JSON转Swift工具的配置信息和统计数据 // Keywords: JSON, Swift, 结构体, 配置, 统计 // ======================================================================== struct Root: Codable { @SerializedName("name") let name: String? @SerializedName("version") let version: String? @SerializedName("description") let description: String? @SerializedName("features") let features: [String]? @SerializedName("settings") let settings: Settings? @SerializedName("stats") let stats: Stats? @SerializedName("created_at") let createdAt: Date? } struct Settings: Codable { @SerializedName("indentation") let indentation: Int? @SerializedName("export") let export: Bool? } struct Stats: Codable { @SerializedName("conversionCount") let conversionCount: Int? @SerializedName("averageTimeMs") let averageTimeMs: Double? } // MARK: - JSON解析扩展 extension Root { static func fromJSON(jsonData: Data) -> Root? { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" dateFormatter.locale = Locale(identifier: "en_US_POSIX") decoder.dateDecodingStrategy = .formatted(dateFormatter) do { return try decoder.decode(Root.self, from: jsonData) } catch { print("JSON解析失败: \(error)") return nil } } }