解析本地json文件

时间:2017-02-10 23:36:15

标签: json swift

我有这个JSON文件:

{
    "People" : [{
        {
            "Name": "Jack"
            "Age": 130,
            "Job": "Doctor",
        },
        {
            "Name": "Mark"
            "Age": 45,
            "Job": "Engineer",
        },
        {
            "Name": "Sarah"
            "Age": 27,
            "Job": "Designer",
        },

    }]
}

以下是我使用辅助函数解析它的方法:

static func parseJson(file: String) -> [String: Any] {
        let jsonFile = Bundle.main.path(forResource: file, ofType: "json")
        let jsonData = NSData(contentsOfFile: jsonFile!)
        let jsonDictionary = try? JSONSerialization.jsonObject(with: jsonData! as Data, options: [])

        return jsonDictionary as! [String: Any] <-- Error
    }

然后当我尝试初始化它时:

let data = parseJson(file: "People")  as! [String: Any]
print(data["people"])

我收到此错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

我在这里做错了什么?我遵循了tutorial by Apple

2 个答案:

答案 0 :(得分:2)

始终使用某个验证程序验证您的JSON。

http://jsonviewer.stack.hu/

更正JSON格式:

{
    "People" : [
        {
            "Name": "Jack",
            "Age": 130,
            "Job": "Doctor",
        },
        {
            "Name": "Mark",
            "Age": 45,
            "Job": "Engineer",
        },
        {
            "Name": "Sarah",
            "Age": 27,
            "Job": "Designer",

    }]
}

答案 1 :(得分:1)

我看到两个问题:

  1. 在开始和结束数组时,您有一组额外的花括号。
  2. 第2行应为"People": [&lt; - NO {

    第18行应为]&lt; - NO}

    1. 一旦你这样做了,在Sarah之后你也会有一个不必要的尾随逗号,它会抛出一些JSON解析器。