2017-02-10 113 views
0

我有這個JSON文件:當我嘗試初始化它解析本地JSON文件

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 
    } 

然後:

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

    }] 
} 

這是我如何解析使用一個輔助函數它

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

我收到此錯誤:

fatal error: unexpectedly found nil while unwrapping an Optional value 

我在這裏做錯了什麼?我跟着這個tutorial by Apple

+0

jsonlint.com說無效JSON –

回答

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", 

    }] 
} 
+0

非常感謝,這個網站肯定會有很大的幫助。 – Abdou023

1

我看到兩個問題:

  1. 當你開始和結束您的陣列,您有一個額外的大括號的。

行2應"People": [ < --no {

線18應當是] < --no}

  • 一旦做到這一點,則還在Sarah之後有一個不必要的尾隨逗號,這會拋出一些JSON解析器。
  • +0

    你也錯過了逗號 「傑克」, 「馬」 和 「薩拉」 之後;這將拋出JSON解析器。此外,您應該刪除作業名稱後面的逗號 - 對象的最後一個屬性 - 即。 '「工作」:「設計師」< - 否, – dmitrydwhite

    +0

    是的,一些愚蠢的錯別字。我第一次處理JSON格式。 感謝您的幫助。 – Abdou023