测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布上次发布 | 2017年6月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
由Toto Tvalavadze维护。
Swift解析器用于JSON Feed —— 一种类似于RSS和Atom但为JSON的新格式。要了解有关此新馈格式的更多信息,请访问:https://jsonfeed.org
Equtable
,如果合适的对象JSONFeedAttachment
添加字节数据和日期格式化感谢您使用JSONFeed!
解析一个馈送非常简单;只需在创建馈送对象时传递响应数据,然后就可以了!解析在初始化时发生,使用JSONSerialization
,如果一切顺利,您将能够访问feed
属性。如果初始化参数无效,JSONFeed
将抛出JSONFeedError
。
let feed = try? JSONFeed(data: responseData)
或者,您也可以从JSON字符串或JSON字典创建对象
let dictionary: [String: Any] = ["title": "..."]
let feed = try? JSONFeed(json: dictionary)
let utf8String: String = "{'title':'..."
let feed = try? JSONFeed(jsonString: utf8String)
了解这个库的最佳方式是浏览源文件和内置文档。
以下是对象及其职责的快速说明
JSONFeed几乎一对一地反映了JSON Feed v1规范中定义的键。键名经过“Swift化”并强类型化:所有日期都将为Date
类型,URL为URL
,依此类推。在规范中定义为可选的所有字段在所有对象中也是Swift的可选类型。
feed.items
是一个包含您项目(帖子、播客的剧集等)的JSONFeedItem
对象的数组。它不能为nil,但可以包含0个元素。
contextText
与 contentHTML
根据规范,两者都是可选的,并且可以同时存在于项目。然而,如果出版商没有设置它们中的任何一个,则帖子将被丢弃,不包含在 items
数组中。
id
的项目如果出版商没有为项目的 id
设置,则项目将被丢弃,不包含在 items
。这种情况会静默发生,不会抛出错误。任何设置了 id
的其他帖子都将出现在数组中(除非两者,即 contextText
和 contentHTML
均缺失)。其原因在 JSON Feed v1 规范 的 对Feed读者的建议 中已清楚阐述。
[…] 我们坚持一点:任何不带
id
的条目必须被丢弃。我们从多年处理其他格式的Feed的经验中得出了这个结论,在这些格式中,唯一标识符是可选的。没有唯一标识符,我们就无法可靠地引用一个特定条目及其随时间的变化,这对用户体验非常糟糕,并成为向你报告bug的问题来源。
项目可以有 attachments
,它们在 JSONFeedAttachment
对象中包装。附件可以是播客剧集、额外的图像或任何其他媒体。
您可以使用 mimeType
属性了解附件类型。所有附件都有指向所附媒体的 url
。这两个属性始终存在于所有附件中。
此外,JSONFeedAttachment
还具有可选的 size
(字节数)和 duration
(秒数),适用于相关媒体文件。
在 JSONFeedItem
和/或 JSONFeed
中使用带名称、头像URL和网页URL的 JSONFeedAuthor
结构。可以同时存在于两者之中。
下载并将 Classes
文件夹中的所有文件拖放到您的项目中。
JSONFeed 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE
。