Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. //: Playground - noun: a place where people can play
  2. import Foundation
  3.  
  4. var a:Model = Model()
  5. a.title = "aaa"
  6. let js = a.toJsonString()
  7. let b = Model.from(jsonString:js!)!
  8. print(b.title)
  9.  
  10. class Model: Codable {
  11. var title:String = ""
  12. var commandArgs:[String] = []
  13. var ignore:String = "b"
  14.  
  15. enum CodingKeys: String, CodingKey {
  16. case title
  17. case commandArgs
  18. }
  19.  
  20. required init() {}
  21.  
  22. required init(from decoder: Decoder) throws {
  23. let values = try decoder.container(keyedBy: CodingKeys.self)
  24. title = try values.decode(String.self, forKey: .title)
  25. commandArgs = try values.decode([String].self, forKey: .commandArgs)
  26. }
  27.  
  28. func toJsonString(/*isPretty:Bool = false*/) -> String? {
  29. guard let jsondata = try? JSONEncoder().encode(self) else { return nil }
  30. /*if isPretty {
  31. if let data = try? JSONSerialization.data(withJSONObject: jsondata, options: .prettyPrinted),
  32. return String(data: data, encoding: .utf8)
  33. }*/
  34. if let jsonString:String = String(data: jsondata, encoding: .utf8) {
  35. //print(jsonString)
  36. //try? jsonString.write(to: destinationURL, atomically: true, encoding: .utf8)
  37. return jsonString
  38. }
  39. return nil
  40. }
  41. static func from(jsonString:String) -> Model? {
  42. // let jsonData:Data = try? Data(contentsOf:url) {
  43. if let jsonData:Data = jsonString.data(using: .utf8),
  44. let data:Model = try? JSONDecoder().decode(Model.self, from: jsonData) {
  45. return data
  46. }
  47. return nil
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement