【问题标题】:how to use SwiftyJSON framework to read a locally declared JSON如何使用 SwiftyJSON 框架读取本地声明的 JSON
【发布时间】:2017-03-20 09:50:16
【问题描述】:

我正在尝试读取本地声明的 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,"shifts": [{"StartTime": "06:30","EndTime": "14:00"},{"StartTime": "14:00","EndTime ":"19:00},{"StartTime":"19:00","EndTime":"01:00"}]}

空

为什么我的 JSON 为空?

【问题讨论】:

    标签: json swift3 swifty-json


    【解决方案1】:

    您的JSON 为空的原因是因为您的JSON 字符串mockShifts 不包含有效的JSON,在第二个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\"}]}"
    

    【讨论】:

    • 这是正确的。我觉得很丢脸!!一旦允许我(几分钟),我会接受这个
    • @Sharonica 欢迎朋友 :) 有时错误太小了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 2018-01-03
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多