При синтаксическом анализе json возникла ошибка
"hoursOfOperation" : {
"sat" : {
"enabled" : true,
"schedule" : [
{
"time" : {
"close" : 1020,
"open" : 600
}
}
]
},
"fri" : {
"enabled" : true,
"schedule" : [
{
"time" : {
"close" : 1260,
"open" : 660
}
}
]
},
"sun" : {
"enabled" : true,
"schedule" : [
{
"time" : {
"close" : 1020,
"open" : 600
}
}
]
},
"mon" : {
"enabled" : true,
"schedule" : [
{
"time" : {
"close" : 1260,
"open" : 960
}
}
]
},
"tue" : {
"enabled" : true,
"schedule" : [
{
"time" : {
"close" : 1260,
"open" : 660
}
}
]
},
"wed" : {
"enabled" : true,
"schedule" : [
{
"time" : {
"close" : 1260,
"open" : 660
}
}
]
},
"thu" : {
"enabled" : true,
"schedule" : [
{
"time" : {
"close" : 1260,
"open" : 660
}
}
]
}
}
Это общий доступ к JSON.Я использую JSONSerialization для анализа того же.Код выглядит следующим образом:
struct HoursOfOperation{
var sun : hoursOfOperationData?
var mon : hoursOfOperationData?
var tue : hoursOfOperationData?
var wed : hoursOfOperationData?
var thu : hoursOfOperationData?
var fri : hoursOfOperationData?
var sat : hoursOfOperationData?
init(_ info: AnyObject) {
let s = String(describing: info)
let data = s.data(using: String.Encoding.utf8, allowLossyConversion: false)!
do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as! [String: AnyObject]
if let sun = json["sun"]{
self.sun = hoursOfOperationData.init(sun)
}
if let sat = json["sat"]{
self.sat = hoursOfOperationData.init(sat)
}
if let fri = json["fri"]{
self.fri = hoursOfOperationData.init(fri)
}
if let thu = json["thu"] {
self.thu = hoursOfOperationData.init(thu)
}
if let wed = json["wed"]{
self.wed = hoursOfOperationData.init(wed)
}
if let tue = json["tue"]{
self.tue = hoursOfOperationData.init(tue)
}
if let mon = json["mon"] {
self.mon = hoursOfOperationData.init(mon)
}
} catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
}
}
// hoursOfOperationData
struct hoursOfOperationData{
var enabled : AnyObject?
var schedule : [scheduleData]?
init(_ info: AnyObject) {
let s = String(describing: info)
let data = s.data(using: String.Encoding.utf8, allowLossyConversion: false)!
do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as! [String: AnyObject]
if let enabled = json["enabled"]{
self.enabled = enabled as AnyObject
}
if let schedule = json["schedule"] as? NSArray{
for dic in schedule{
schedule.adding(scheduleData.init(dic as AnyObject))
}
self.schedule = schedule as? [scheduleData]
}
} catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
}
}
// scheduleData
struct scheduleData{
var time : scheduleDataForLocation?
init(_ info: AnyObject) {
let s = String(describing: info)
let data = s.data(using: String.Encoding.utf8, allowLossyConversion: false)!
do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as! [String: AnyObject]
if let time = json["time"]{
self.time = scheduleDataForLocation.init(time)
}
} catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
}
}
// scheduleDataForLocation
struct scheduleDataForLocation{
var openTime : AnyObject?
var closeTime : AnyObject?
init(_ info: AnyObject) {
let s = String(describing: info)
let data = s.data(using: String.Encoding.utf8, allowLossyConversion: false)!
do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as! [String: AnyObject]
if let open = json["open"]{
self.openTime = open as AnyObject
}
if let close = json["close"]{
self.closeTime = close as AnyObject
}
} catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
}
}
При подготовке этой модели я не могу разобрать json и получить сообщение об ошибке
'Error Domain = NSCocoaErrorDomain Code = 3840 "Нет строкового ключа для значения в объекте вокруг символа 6."UserInfo = {NSDebugDescription = Нет строкового ключа для значения в объекте вокруг символа 6.} '
Пожалуйста, предложите правильный способ обработки того же самого.Я посетил много вопросов и ответов о переполнении стека, но никто не отвечает на мой вопрос.Любая помощь будет заметна.