如何使用 SwiftyJSON 框架读取本地声明的 JSON
how to use SwiftyJSON framework to read a locally declared JSON
我正在尝试读取本地声明的 JSON,因为我还没有准备好网络向我发送我们正在开发的应用程序的 JSON 示例。
出于某种原因,我在尝试打印由 SwiftyJSON 框架创建的 json 时得到一个空值。
这是我的 class:
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,"shifts": [{"StartTime": "06:30","EndTime": "14:00"},{"StartTime": "14:00","EndTime": "19:00},{"StartTime": "19:00","EndTime":"01:00"}]}
null
为什么我的 JSON 为空?
您的 JSON
为空的原因是您的 JSON
字符串 mockShifts
不包含有效的 JSON
,缺少 double quote(\")
数组第二个对象中 19:00
之后的 EndTime
键移位。添加那个双引号,你们就可以开始了。
let mockShifts = "{\"numOfShiftsInDay\": 3,\"shifts\": [{\"StartTime\": \"06:30\",\"EndTime\": \"14:00\"},{\"StartTime\": \"14:00\",\"EndTime\": \"19:00\"},{\"StartTime\": \"19:00\",\"EndTime\":\"01:00\"}]}"
我正在尝试读取本地声明的 JSON,因为我还没有准备好网络向我发送我们正在开发的应用程序的 JSON 示例。 出于某种原因,我在尝试打印由 SwiftyJSON 框架创建的 json 时得到一个空值。 这是我的 class:
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,"shifts": [{"StartTime": "06:30","EndTime": "14:00"},{"StartTime": "14:00","EndTime": "19:00},{"StartTime": "19:00","EndTime":"01:00"}]}
null
为什么我的 JSON 为空?
您的 JSON
为空的原因是您的 JSON
字符串 mockShifts
不包含有效的 JSON
,缺少 double quote(\")
数组第二个对象中 19:00
之后的 EndTime
键移位。添加那个双引号,你们就可以开始了。
let mockShifts = "{\"numOfShiftsInDay\": 3,\"shifts\": [{\"StartTime\": \"06:30\",\"EndTime\": \"14:00\"},{\"StartTime\": \"14:00\",\"EndTime\": \"19:00\"},{\"StartTime\": \"19:00\",\"EndTime\":\"01:00\"}]}"