首页 > 解决方案 > 将 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
}

这是代码请帮忙

标签: jsonswiftuitableview

解决方案


所以。首先:您的网址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 打开你的选项是更好的方法。


推荐阅读