JSONFeed parser for swift
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
JSONFeed.xcodeproj
JSONFeed
JSONFeedTests
.gitignore
.swiftlint.yml
.travis.yml
LICENSE
Package.swift
README.md
codecov.yml

README.md

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
    }
}