Skip to content

wesbillman/JSONFeed

Repository files navigation

Build Status Codecov Carthage compatible SwiftPM Compatible

JSONFeed

Swift parsing for JSON Feed Spec

Installation

Carthage

You can install Carthage with Homebrew using the following command:

brew update
brew install carthage

To integrate JSONFeed into your Xcode project using Carthage, specify it in your Cartfile where "x.x.x" is the current release:

github "wesbillman/JSONFeed" "x.x.x"

Swift Package Manager

To install using Swift Package Manager have your Swift package set up, and add JSONFeed as a dependency to your Package.swift.

dependencies: [
    .Package(url: "https://github.com/wesbillman/JSONFeed.git", majorVersion: 0)
]

Manually

Add all the files from JSONFeed/JSONFeed to your project

Usage

See JSONFeedTests for detailed usage examples

Load a feed from a dictionary

let dictionary = <some feed dictionary>
let feed = try? JSONFeed(json: dictionary)

Load a feed from data

let data = <some feed data>
let feed = try? JSONFeed(data: data)

Load a feed from a json ut8f string

let string = <some utf8 json string>
let feed = try? JSONFeed(string: string)

Reading from a feed via URLSession

Using default configuration and URLSession

let reader = JSONFeedReader()
reader.read(string: "https://jsonfeed.org/feed.json") { (feed, error) in
    if let error = error {
        //bad things happened
    }

    if let feed = feed {
        //good things happened
    }
}

Using custom implemenation of URLSession (example: for unit testing)

let reader = JSONFeedReader(session: SomeCustomURLSession)
reader.read(string: "https://jsonfeed.org/feed.json") { (feed, error) in
    if let error = error {
        //bad things happened
    }

    if let feed = feed {
        //good things happened
    }
}