将json数据提取到快速uitable视图中

时间:2019-02-14 08:05:09

标签: json swift uitableview

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
}

这是代码 请帮助

1 个答案:

答案 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)
}

在上面的示例中,我强行打开包装。我不建议这样做。最好是省钱地打开可选组件。