Swift JSON 解析错误?

Posted

技术标签:

【中文标题】Swift JSON 解析错误?【英文标题】:Swift JSON Parsing Error? 【发布时间】:2016-07-11 18:54:28 【问题描述】:

我正在尝试使用 swifty son 解析本地文件。我能够将内容存储在数据中,但由于某种原因,使用 swift son 框架中的 JSON 没有存储任何内容(并且行数为 0)。我究竟做错了什么?

import SwiftyJSON
class MainTableViewController: UITableViewController 
    var NumberofRows = 0
    var names = [String]()

    func parseJSON()
    let path =  NSBundle.mainBundle().URLForResource("documents", withExtension: "json")

    let data = NSData(contentsOfURL: path!) as NSData!

    let readableJSON = JSON(data: data)


    NumberofRows = readableJSON["Documents"].count

    print(NumberofRows)

    for i in 1...NumberofRows 
        var doc = "Doc" + "\(i)"
        var Name = readableJSON["Documents"][doc]["name"].string as String!
        names.append(Name)
    


【问题讨论】:

在你的代码中运行你的代码时数据不为空? 当您尝试print(readableJSON) 时会发生什么? @ConnorNeville 它打印“null” @ReinierMelian 如何判断核心数据是否为空? 验证“documents.json”是否在项目的根目录中,并且它包含有效的 JSON。这告诉您 SwiftyJSON 无法在该 URL 上找到有效的 JSON。 【参考方案1】:

你需要检查 NSData 是否为空。

if let path = NSBundle.mainBundle().URLForResource("documents", withExtension: "json") 
    if let data = NSData(contentsOfURL: path) as? NSData 
        let readableJSON = JSON(data: data)
        // ...
    

【讨论】:

如果datanil 开发者应该做他的功课;-) 对不起,我误解了您的问题。你确定 JSON 是正确的吗?

以上是关于Swift JSON 解析错误?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Codable 解析 JSON 响应会在 swift 中出现错误

Swift json 解析错误:无法将 NSCFConstantString 类型的值转换为 NSArray

如何在 Swift 中使用 Decodable 解析 JSON 元素。我这样做时收到错误

Json 解析错误:在 Swift iOS 中使用未声明的类型“Foundation”

Swift 2 解析和读取 JSON

使用 swift 从解析的 Json 中提取数据