【发布时间】:2015-11-29 18:30:15
【问题描述】:
我一直在尝试将 SwiftyJSON 用于项目中的虚拟 JSON 文件。
但我只能得到“null”或“nil”而不是 JSON 文件中的数据。我可能会在这里寻求一点帮助。
这是我得到的回应: 0 空值 1 的名称:无 由 1 组成:空
这是一个虚拟的 JSON 文件;
{
"Cars": [
{
"Name": "111",
"Make": "2000"
},
{
"Name": "222",
"Make": "2010"
}
]
}
这是我试图解析的地方;
import UIKit
class ViewController: UIViewController {
var numberOfRows = 0
override func viewDidLoad() {
super.viewDidLoad()
parseJSON()
}
func parseJSON() {
let path : String = NSBundle.mainBundle().pathForResource("jsonfile", ofType: "json") as String!
let jsonDATA = NSData(contentsOfFile: path) as NSData!
let readableJSON = JSON(data: jsonDATA, options: NSJSONReadingOptions.MutableContainers, error: nil)
let allList = readableJSON["Cars"]
numberOfRows = readableJSON["Cars"].count
print("\(numberOfRows)")
print("\(allList)")
let name1 = readableJSON["Cars"][0]["Name"].string
let make1 = readableJSON["Cars",0,"Make"]
print("Name of 1 : \(name1)")
print("Make of 1: \(make1)")
}
}
【问题讨论】:
-
传递一个
NSError实例作为错误参数来获取一些错误信息。as String!是一种非常不寻常的语法。使用as! String或可选绑定(首选)if let … as? String { … -
我知道了 --> 可选(错误域=NSCocoaErrorDomain Code=3840 "Garbage at end." UserInfo={NSDebugDescription=Garbage at end.})
-
JSON 字符串可能以 \0 终止符结尾,这会导致错误或 JSON 未正确编码。由于 JSON 文本在文件中,因此删除所有仅是人类可读语法糖的空格字符。
-
PS:JSON 基本正确。检查文件末尾是否有任何不可见的控制字符。
-
你是对的。我有一些其他著作作为评论( /* ..... */ )。在我最后清除所有垃圾后问题解决了。非常感谢。
标签: json swift parsing swifty-json