我正在尝试读取一个本地声明的JSON,因为我仍然没有准备好为我们正在开发的应用程序发送JSON示例的网络。由于某些原因,当我试图打印由SwiftyJSON框架创建的json时,我会得到一个null。这是我的课:
import Foundation
import SwiftyJSON
let mockShifts = "{\"numOfShiftsInDay\": 3,\"shifts\": [{\"StartTime\": \"06:30\",\"EndTime\": \"14:00\"},{\"StartTime\": \"14:00\",\"EndTime\": \"19:00},{\"StartTime\": \"19:00\",\"EndTime\":\"01:00\"}]}"
class WeeklySchedule {
var shifts: [Shift] = []
var shiftsAmount: Int = 3
var relative: Int = 0
func setShiftsAmount(amount: Int){
self.shiftsAmount = amount
for _ in 1...amount{
self.shifts.append(Shift())
}
getShifts()
}
func getRelative() -> Int{
return relative
}
func getShifts(){
let data = mockShifts.data(using: .utf8)!
let json = JSON(data: data)
print(mockShifts) //This prints out a JSON that looks OK to me
print(json) //This prints NULL
if let numOfShifts = json["numOfShiftsInDay"].string {
print(numOfShifts) //This code is unreachable
}
}
}
这是我的控制台输出,当调用setShiftsAmount()
(调用getShifts()
)时
{"numOfShiftsInDay":3,“移位”:{"StartTime":"06:30","EndTime":"14:00"},{"StartTime":"14:00","EndTime":"19:00},{"StartTime":"19:00",“EndTime”:“01:00”} 空
为什么我的JSON为空?
发布于 2017-03-20 01:54:36
由于您的JSON
字符串mockShifts
不包含有效的JSON
,所以要获得null的原因是,在数组移位的第二个对象19:00
之后,EndTime
键缺少double quote(\")
。加上双引号,你们就都准备好了。
let mockShifts = "{\"numOfShiftsInDay\": 3,\"shifts\": [{\"StartTime\": \"06:30\",\"EndTime\": \"14:00\"},{\"StartTime\": \"14:00\",\"EndTime\": \"19:00\"},{\"StartTime\": \"19:00\",\"EndTime\":\"01:00\"}]}"
https://stackoverflow.com/questions/42900359
复制