Below is my json file
,URL为http://localhost/country.php 我希望此数据快速进入可查看的视图 {名称:[“印度”,“美国”,“中国”]}
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
}
这是代码 请帮助
答案 0 :(得分:4)
所以。首先:您的JSON
不是有效的JSON
,并且您的URL(当然)不起作用。我的猜测是您的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)
}
就像已经提到的一条评论:如果不需要,请尝试避免在Swift中使用NS
类型。
希望有帮助。
此外:从服务器同步加载响应通常是一个坏习惯。您应该使用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)
}
在上面的示例中,我强行打开包装。我不建议这样做。最好是省钱地打开可选组件。