如何使用SwiftyJSON框架读取本地声明的JSON
我正在尝试阅读一个本地声明的JSON,因为我还没有准备好向我发送我们正在开发的应用程序的JSON示例的网络。 出于某种原因,当我试图打印由SwiftyJSON框架创建的json时,会得到一个空值。 这是我的班级:如何使用SwiftyJSON框架读取本地声明的JSON,json,swift3,swifty-json,Json,Swift3,Swifty Json,我正在尝试阅读一个本地声明的JSON,因为我还没有准备好向我发送我们正在开发的应用程序的JSON示例的网络。 出于某种原因,当我试图打印由SwiftyJSON框架创建的json时,会得到一个空值。 这是我的班级: import Foundation import SwiftyJSON let mockShifts = "{\"numOfShiftsInDay\": 3,\"shifts\": [{\"StartTime\":
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,“班次”:[{“开始时间”:“06:30”,“结束时间”:“14:00”},{“开始时间”:“14:00”,“结束时间”:“19:00”},{“开始时间”:“19:00”,“结束时间”:“01:00”}]
空的
为什么我的JSON为空?之所以您的
JSON
为空,是因为您的JSON
字符串mockShifts
不包含有效的JSON
,数组shifts的第二个对象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
字符串mockShifts
不包含有效的JSON
,因此您的JSON
为空,缺少双引号(\”)
在数组移位的第二个对象中的EndTime
键在19:00
之后。添加该双引号,您就可以开始了
let mockShifts = "{\"numOfShiftsInDay\": 3,\"shifts\": [{\"StartTime\": \"06:30\",\"EndTime\": \"14:00\"},{\"StartTime\": \"14:00\",\"EndTime\": \"19:00\"},{\"StartTime\": \"19:00\",\"EndTime\":\"01:00\"}]}"
这是正确的。我感到尴尬!!我会接受这一次,所以让我(几分钟)@Sharonica Welcome mate:)有时错误太小。这是正确的。我感到尴尬!!我会接受这一次,所以让我(几分钟)@Sharonica Welcome mate:)有时错误太小。