'How to binding Json Value into Swifty model class
Based on the response, I constructed Dictionary -> [String:Any]
Convert Dictionary to Json by using below extension
extension [String: Any] {
var jsonData: Data? {
return try? JSONSerialization.data(withJSONObject: self, options: [.prettyPrinted])
}
func toStringJSON() -> String? {
if let jsonData = jsonData {
let jsonString = String(data: jsonData, encoding: .utf8)
return jsonString
}
return nil
}
}
func prepareJsonString(dict: [String:Any]) ->String{
let jsonString = dict.toStringJSON()
}
Created The json value.
{
"data": [
{
"data": [
{
"check_in": "08:00 AM",
"check_out": "09:00 PM",
"breaks": [
{
"type": "Lunch",
"break_in": "01:00 AM",
"break_out": "02:00 AM"
},
{
"type": "Recess",
"break_in": "03:30 PM",
"break_out": "04:30 PM"
}
]
}
]
}
]
}
Created the model Class
struct SchoolBreaks {
let data: [Data]?
init(_ json: JSON) {
data = json["data"].arrayValue.map { Data($0) }
}
}
struct Data {
let data: [Data]?
init(_ json: JSON) {
data = json["data"].arrayValue.map { Data($0) }
}
}
struct Data {
let data: [Data]?
init(_ json: JSON) {
data = json["data"].arrayValue.map { Data($0) }
}
}
struct Data {
let checkIn: String?
let checkOut: String?
let breaks: [Breaks]?
init(_ json: JSON) {
checkIn = json["check_in"].stringValue
checkOut = json["check_out"].stringValue
breaks = json["breaks"].arrayValue.map { Breaks($0) }
}
}
struct Breaks {
let type: String?
let breakIn: String?
let breakOut: String?
init(_ json: JSON) {
type = json["type"].stringValue
breakIn = json["break_in"].stringValue
breakOut = json["break_out"].stringValue
}
}
When I am trying to bind resultant jsonValue into ModelClass -> SchoolBreak
its showns Empty
let jsonValue = prepareJsonString(dict: preparedDictionary)
let schoolBreak = SchoolBreak init(JSON(rawValue: jsonValue) ?? "")
print(schoolBreak)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
