Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Foundation
- import UIKit
- var str = """
- {
- "name": "Endeavor",
- "abv": 8.9,
- "brewery": "Saint Arnold",
- "style": "ipa"
- }
- """
- enum BeerStyle:String,Codable {
- case ipa
- case stout
- case kolsch
- }
- struct Beer : Codable {
- let name : String
- let brewery : String
- let style : BeerStyle
- let abv : Float
- // Custom Keys for Encoding.
- enum EncodingKeys: String, CodingKey {
- case name = "name-alternative"
- case abv = "alcohol_by_volume"
- case brewery = "brewery_name"
- case style
- }
- func encode(to encoder: Encoder) throws {
- var container = encoder.container(keyedBy: EncodingKeys.self) // Encoding keys are referenced here
- try container.encode(name, forKey: .name)
- try container.encode(brewery, forKey: .brewery)
- try container.encode(style, forKey: .style)
- try container.encode(abv, forKey: .abv)
- }
- }
- let jsonData = str.data(using: .utf8)!
- let decoder = JSONDecoder() // This uses auto generated CodingKeys
- let beer = try! decoder.decode(Beer.self, from: jsonData)
- let encoder = JSONEncoder()
- let json = try! encoder.encode(beer)
- let jsonString = String(data: json, encoding: .utf8)
- // json String = {"style":"ipa","alcohol_by_volume":8.8999996185302734,"brewery_name":"Saint Arnold","name-alternative":"Endeavor"}"
Add Comment
Please, Sign In to add comment