Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SwiftyJSON框架读取本地声明的JSON_Json_Swift3_Swifty Json - Fatal编程技术网

如何使用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\":

我正在尝试阅读一个本地声明的JSON,因为我还没有准备好向我发送我们正在开发的应用程序的JSON示例的网络。 出于某种原因,当我试图打印由SwiftyJSON框架创建的json时,会得到一个空值。 这是我的班级:

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:)有时错误太小。