CuteBaby:用于Swift的JSON模型生成器
CuteBaby可以从JSON字符串生成Swift模型(结构或类)。
它具有一些不错的功能,可以自定义生成的模型。
- 它可以从JSON推断属性的类型,例如String,Int,Double,URL和Date。
- 它可以处理嵌套的JSON,它将生成嵌套的模型。
- 它支持Swift 4中的Codable。
- 您可以使用Property Map指定属性名称,使用Array Object Map指定数组的对象名称,使用Property Type Map指定属性的类型 ,或者使用Enum Properties指定枚举的定义。
- 它还可以处理数组根JSON,它将自动合并数组中对象的属性。
- 它可以使用漂亮的格式格式化JSON。
- 它可以从URL加载JSON。
- 您可以拖放文本文件来创建新项目。
对于JSON:
{ “ id”:42 “ name”:“ nixzhu”, “推特”: { “ profile_url”:“ https://twitter.com/nixzhu”, “ created_at”:“ 2009-05-12T10:25:43.511Z” } }
它将生成Swift代码(使用Codable
):
struct用户:可编码{ let id:整数 命名:字符串 struct Twitter:可编码{ 让profileURL:URL 让createdAt:日期 私有枚举CodingKeys:字符串,CodingKey { case profileURL =“ profile_url” case createdAt =“ created_at” } } 让twitter:Twitter }
请注意,可以使用Property Map profile_url: profileURL
来更改属性名称(自动生成为profileUrl
)。
没有Codable
Swift代码:
struct用户{ let id:整数 命名:字符串 struct Twitter { 让profileURL:URL 让createdAt:日期 init(profileURL:URL,createdAt:Date){ self.profileURL = profileURL self.createdAt = createdAt } 初始化?(json:[String:Any]){ 警卫让profileURLString = json [“ profile_url”]为? 字符串else {return nil} 警卫让profileURL = URL(string:profileURLString)else {return nil} 守卫让createdAtString = json [“ created_at”]为? 字符串else {return nil} 守卫let createdAt = DateFormatter.iso8601.date(from:createdAtString)else {return nil} self.init(profileURL:profileURL,createdAt:createdAt) } } 让twitter:Twitter init(id:Int,name:String,twitter:Twitter){ self.id = id self.name =名称 self.twitter =推特 } 初始化?(json:[String:Any]){ 警卫让id = json [“ id”]为? 否则为{return nil} 警卫让name = json [“ name”]为? 字符串else {return nil} 警卫让twitterJSONDictionary = json [“ twitter”]为? [String:Any] else {return nil} 保护卫兵twitter = Twitter(json:twitterJSONDictionary)else {return nil} self.init(id:id,名称:名称,twitter:twitter) } }
如果不使用Codable
则可能需要DateFormatter
扩展名:
扩展名DateFormatter {静态,让iso8601:DateFormatter = { 让formatter = DateFormatter() formatter.timeZone = TimeZone(缩写:“ UTC”) formatter.locale =语言环境(标识符:“ en_US_POSIX”) formatter.dateFormat =“ yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ” 返回格式化程序 }() }
对于JSON:
{ “ id”:42 “ name”:“ nixzhu”, “ draft_posts”:[ { “ id”:1 “ title”:“ Hello World!”, “ body”:“嗨,我是CuteBaby。” }, { “ id”:2 “ title”:“你好吗?”, “ body”:null } ] }
它将生成Swift代码(使用Codable
):
struct用户:可编码{ let id:整数 命名:字符串 struct Post:可编码{ let id:整数 让标题:字符串 let body:字符串? } let draftPosts:[发布] 私有枚举CodingKeys:字符串,CodingKey { 案例ID 案例名称 case draftPosts =“ draft_posts” } }
请注意,使用数组对象映射 draft_posts: Post
可以更改对象名称(自动生成为DraftPost
)。
对于JSON:
{ “新用户”: [ { “ id”:2 “ name”:“ bigbigchai”, “性别女”, “年龄”:16 } ] }
它将生成Swift代码(使用Codable
):
struct NewModel:可编码{ struct用户:可编码{ let id:整数 命名:字符串 枚举性别:字符串,可编码{ 案例男 案例女性 } 性别:性别 年龄:整数 } 让newUsers:[User] 私有枚举CodingKeys:字符串,CodingKey { case newUsers =“ new_users” } }
请注意,使用Enum Properties gender[male, female]
为性别属性生成枚举Gender。 还可以使用数组对象映射 new_users: User
更改对象名称(自动生成的将是NewUser
)。
您也可以将URL粘贴在右上角的文本视图中,CuteBaby将尝试从中自动加载JSON。
使用JSON字符串创建模型,即使CuteBaby也可以做到。
在Mac App Store上获取CuteBaby。
或在Mac App Store上使用SmartBaby。 更聪明。
希望你喜欢。 😀💕