Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //: Playground - noun: a place where people can play
- import Foundation
- var a:Model = Model()
- a.title = "aaa"
- let js = a.toJsonString()
- let b = Model.from(jsonString:js!)!
- print(b.title)
- class Model: Codable {
- var title:String = ""
- var commandArgs:[String] = []
- var ignore:String = "b"
- enum CodingKeys: String, CodingKey {
- case title
- case commandArgs
- }
- required init() {}
- required init(from decoder: Decoder) throws {
- let values = try decoder.container(keyedBy: CodingKeys.self)
- title = try values.decode(String.self, forKey: .title)
- commandArgs = try values.decode([String].self, forKey: .commandArgs)
- }
- func toJsonString(/*isPretty:Bool = false*/) -> String? {
- guard let jsondata = try? JSONEncoder().encode(self) else { return nil }
- /*if isPretty {
- if let data = try? JSONSerialization.data(withJSONObject: jsondata, options: .prettyPrinted),
- return String(data: data, encoding: .utf8)
- }*/
- if let jsonString:String = String(data: jsondata, encoding: .utf8) {
- //print(jsonString)
- //try? jsonString.write(to: destinationURL, atomically: true, encoding: .utf8)
- return jsonString
- }
- return nil
- }
- static func from(jsonString:String) -> Model? {
- // let jsonData:Data = try? Data(contentsOf:url) {
- if let jsonData:Data = jsonString.data(using: .utf8),
- let data:Model = try? JSONDecoder().decode(Model.self, from: jsonData) {
- return data
- }
- return nil
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement