如何使用 SwiftyJSON 框架读取本地声明的 JSON
Posted
技术标签:
【中文标题】如何使用 SwiftyJSON 框架读取本地声明的 JSON【英文标题】:how to use SwiftyJSON framework to read a locally declared 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 为空?
【问题讨论】:
【参考方案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 欢迎朋友 :) 有时错误太小了。以上是关于如何使用 SwiftyJSON 框架读取本地声明的 JSON的主要内容,如果未能解决你的问题,请参考以下文章