json - 将 json 数据获取到 swift uitable 视图中
问题描述
Below is my json file
并且 url 是http://localhost/country.php 我想要这个数据到 uitable view swift { name: ["India","USA","China"] }
let url = NSURL(string: "http://localhost/country.php")
let userdata = NSData(contentsOf: url! as URL)
do {
let values = try JSONSerialization.jsonObject(with: userdata as! Data, options: .allowFragments) as! NSDictionary
print(values)
print("Parse success")
} catch let error as NSError
{
print(error)
return
}
这是代码请帮忙
解决方案
所以。首先:您的网址JSON
无效JSON
,并且您的网址(当然)不起作用。我的猜测是你的 JSON 看起来像这样:
{
"name": ["India",
"USA",
"China"
]
}
如果是这样,您可以像这样更改代码并且它按预期工作:
let jsonString = """
{
"name": ["India",
"USA",
"China"
]
}
"""
let userData = jsonString.data(using: .utf8)!
do {
let values = try JSONSerialization.jsonObject(with: userData) as! [String: Any]
print(values)
print("Parse success")
} catch let error as NSError
{
print(error)
}
NS
就像已经提到的一条评论:如果不是真的需要,尽量避免使用 Swift 中的类型。
希望能帮助到你。
此外:从服务器同步加载响应通常是一种不好的做法。您应该使用URLSession
并异步执行。但这是另一回事...
因此,您的用例的完整示例如下所示:
let url = URL(string: "http://localhost/country.php")!
let userData = try! Data(contentsOf: url)
do {
let values = try JSONSerialization.jsonObject(with: userData) as! [String: Any]
print(values)
print("Parse success")
} catch let error as NSError
{
print(error)
}
我在上面的例子中强制展开。我不建议这样做。Savely 打开你的选项是更好的方法。