![](/img/trans.png)
[英]How do i parse the json array in tableview in swift 4 using decoder
[英]How do I parse an array inside parsed JSON in Swift?
我正在使用返回如下所示JSON的API
{
"boards":[
{
"attribute":"value1"
},
{
"attribute":"value2"
},
{
"attribute":"value3",
},
{
"attribute":"value4",
},
{
"attribute":"value5",
},
{
"attribute":"value6",
}
]
}
在Swift中,我使用兩個函數來獲取並解析JSON
func getJSON(urlToRequest: String) -> NSData{
return NSData(contentsOfURL: NSURL(string: urlToRequest))
}
func parseJSON(inputData: NSData) -> NSDictionary{
var error: NSError?
var boardsDictionary: NSDictionary = NSJSONSerialization.JSONObjectWithData(inputData, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
return boardsDictionary
}
然后我用
var parsedJSON = parseJSON(getJSON("link-to-API"))
可以很好地解析JSON。 當我打印出
println(parsedJSON["boards"])
我得到了數組的所有內容。 但是,我無法訪問每個單獨的索引。 我很肯定這是一個數組,因為我之間
parsedJSON["boards"].count
返回正確的長度。 但是,如果我嘗試通過使用訪問單個索引
parsedJSON["boards"][0]
XCode關閉語法高亮顯示並給我以下信息:
並且代碼將無法編譯。
這是XCode 6的錯誤,還是我做錯了什么?
Swift中的字典訪問返回一個Optional,因此您需要強制該值(或使用if let
語法)來使用它。
這有效: parsedJSON["boards"]![0]
(不過,它可能不會使Xcode崩潰)
在這里看看: https : //github.com/lingoer/SwiftyJSON
let json = JSONValue(dataFromNetworking)
if let userName = json[0]["user"]["name"].string{
//Now you got your value
}
您可以創建一個變量
var myBoard: NSArray = parsedJSON["boards"] as! NSArray
然后您就可以訪問“面板”中的所有內容,例如-
println(myBoard[0])
解決此問題的正確方法是檢查字典鍵的返回值:
if let element = parsedJSON["boards"] {
println(element[0])
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.