JSONFeed 0.8.4

JSONFeed 0.8.4

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布上次发布2017年6月
SwiftSwift版本3.0
SPM支持SPM

Toto Tvalavadze维护。



JSONFeed 0.8.4

JSONFeed

Swift解析器用于JSON Feed —— 一种类似于RSS和Atom但为JSON的新格式。要了解有关此新馈格式的更多信息,请访问:https://jsonfeed.org


⚠️ 欢迎贡献者!以下是我的待办事项列表现在看起来:

  • [x] 实现框架,使其可使用
  • [x] 合适的内置文档
  • [x] 在README中的清晰文档(您现在看到的就是这个)
  • [x] 添加CocoaPods支持
  • [x] 添加Carthage支持
  • [ ] 添加SPM支持
  • [x] 将CHANGELOG添加到仓库
  • [ ] 添加更详细的测试
  • [x] 为对象添加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个元素。

contextTextcontentHTML

根据规范,两者都是可选的,并且可以同时存在于项目。然而,如果出版商没有设置它们中的任何一个,则帖子将被丢弃,不包含在 items 数组中。

没有 id 的项目

如果出版商没有为项目的 id 设置,则项目将被丢弃,不包含在 items。这种情况会静默发生,不会抛出错误。任何设置了 id 的其他帖子都将出现在数组中(除非两者,即 contextTextcontentHTML 均缺失)。其原因在 JSON Feed v1 规范对Feed读者的建议 中已清楚阐述。

[…] 我们坚持一点:任何不带 id 的条目必须被丢弃。我们从多年处理其他格式的Feed的经验中得出了这个结论,在这些格式中,唯一标识符是可选的。没有唯一标识符,我们就无法可靠地引用一个特定条目及其随时间的变化,这对用户体验非常糟糕,并成为向你报告bug的问题来源。

附件

项目可以有 attachments,它们在 JSONFeedAttachment 对象中包装。附件可以是播客剧集、额外的图像或任何其他媒体。

您可以使用 mimeType 属性了解附件类型。所有附件都有指向所附媒体的 url。这两个属性始终存在于所有附件中。

此外,JSONFeedAttachment 还具有可选的 size(字节数)和 duration(秒数),适用于相关媒体文件。

作者

JSONFeedItem 和/或 JSONFeed 中使用带名称、头像URL和网页URL的 JSONFeedAuthor 结构。可以同时存在于两者之中。


安装

手动

下载并将 Classes 文件夹中的所有文件拖放到您的项目中。


许可

JSONFeed 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE