Работа с JSON

Для работы с форматом JSON во фреймворке Foundation имеется класс NSJSONSerialization. Он позволяет выполнять две основные вещи: переводить объекты в JSON-данные — сериализовать, и наоборот, из JSON-данных получать объекты — десериализовать.

/* 
articles.json format:

[
  {
    "article": {
      "title": "Холст для рисования",
      "url": "http://valery.bashkatov.org/paper/canvasview",
      "date": "2016-01-22"
    }
  },
  {
    "article": {
      "title": "Вызов метода по таймеру",
      "url": "http://valery.bashkatov.org/paper/method-call-by-timer",
      "date": "2016-01-17"
    }
  }
]
*/

import Foundation

typealias Article = [String: [String: String]]!

let url = NSURL(string: "http://valery.bashkatov.org/files/json/articles.json")!
var data = NSData(contentsOfURL: url)!
var articles: [Article]!

do {
    // JSON data deserialization into the object
    articles = try NSJSONSerialization.JSONObjectWithData(data, 
                                       options: NSJSONReadingOptions()) as! [Article]
} catch {
    print(error)
}

for article in articles {
    print("article")
}

if NSJSONSerialization.isValidJSONObject(articles) {
    do {
        // Object serialization into the JSON data
        data = try NSJSONSerialization.dataWithJSONObject(articles, 
                                       options: NSJSONWritingOptions.PrettyPrinted)
    } catch {
        print(error)
    }
}

print(String(data: data, encoding: NSUTF8StringEncoding)!)