Swift3不能很好地处理我的JSON文件
我有以下代码:Swift3不能很好地处理我的JSON文件,json,xcode,swift3,Json,Xcode,Swift3,我有以下代码: let urlString = "https://str8red.com/jsonoverallleaderboard/" let url = URL(string: urlString) URLSession.shared.dataTask(with:url!) { (data, response, error) in if error != nil { print("there was an error") print(error)
let urlString = "https://str8red.com/jsonoverallleaderboard/"
let url = URL(string: urlString)
URLSession.shared.dataTask(with:url!) { (data, response, error) in
if error != nil {
print("there was an error")
print(error)
}
do {
let parsedData = try JSONSerialization.jsonObject(with: data!) as! [String:Any]
} catch let error as NSError {
print(error)
}
}
}.resume()
在“let parsedData”行返回以下错误:
使用的JSON iIam来自网站,格式如下:
[["shanu", "1056"], ["snookro", "828"], ["tingeypa", "709"], ["shaun", "620"], ["chrakers", "506"]]
如果有帮助的话,最后的游戏就是使用JSON并将其映射如下:
players = jsonPlayers.map { Player(name: $0[0], score: $0[1]) }
感谢您的帮助。您的JSON数据不是
[String:any]
类型。而是[[String]]
因此,以下内容将完成这项工作:
let parsedData = try JSONSerialization.jsonObject(with: data!) as! [[String]]
但这里有一种解析JSON数据的简便方法
enum JSONError: String, Error {
case NoData = "ERROR: no data"
case ConversionFailed = "ERROR: conversion from JSON failed"
}
typealias myJSONObjectType = [[String]] // change this according to your data type that is in your JSON
func parseJSON(fromPath jsonURLString:String) {
guard let jsonURL = URL(string: jsonURLString) else {
print("Error creating an URL from \(jsonURLString)")
return
}
URLSession.shared.dataTask(with: jsonURL) { (data, response, error) in
do {
guard let data = data else {
throw JSONError.NoData
}
guard let json = try JSONSerialization.jsonObject(with: data, options: []) as? myJSONObjectType else {
throw JSONError.ConversionFailed
}
print(json)
} catch let error as JSONError {
print(error.rawValue)
} catch let error as NSError {
print(error.debugDescription)
}
}.resume()
}
然后像这样使用它:
object.parseJSON(fromPath: "https://str8red.com/jsonoverallleaderboard/")
这是一个数组,不是字典。字符串数组的数组<代码>[[String]]。或者
[[Any]]
,如果您不确定它们都是字符串。谢谢Eric,我如何在我的swift代码中纠正这一点以使其符合要求?或者我不需要转换为JSON而直接使用它?将替换为![字符串:任意]
带有as![[String]]
。(我得走了。如果你迷路了,其他人会很乐意帮忙的。)谢谢埃里克:)如果我被卡住了,没有人帮忙,也许你以后可以成为我的英雄。是弦乐部分让它工作起来的。没有尝试其他部分,但感谢您的帮助:)
object.parseJSON(fromPath: "https://str8red.com/jsonoverallleaderboard/")