如何在Swift中解析这个Json数据并保存离线

时间:2018-01-03 04:45:11

标签: json swift3

{
     "Name": "Abc",
     "Detail": [
         {
             "Phone": "0123456789",
             "Tid": 0,
             "Gid": 4
         },
         {
             "Phone": "0123456789",
             "Tid": 0,
             "Gid": 4
         },
         {
             "Phone": "0123456789",
             "Tid": 0,
             "Gid": 4
         },
         {
             "Phone": "0123456789",
             "Tid": 0,
             "Gid": 4
         }
     ],
     "Email": "asdd"
 }

我想在ViewController上显示Name并在Next DetailView控制器上显示Detail

请帮帮我。

1 个答案:

答案 0 :(得分:0)

在viewController1中

使用JSONSerialization将下载的数据转换为字典格式

  do {
     //Converting data to Dictionary
     let result : NSDictionary! = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! NSDictionary

      } catch let error {
       // error
       print("URL: \(url) error: \(error.localizedDescription)")
   }

的值改为

let nameValue = result.value(forKey: "name") as! String // name value
nameLabel.text = nameValue

在ViewController1

中显示您的名称nameValue

传递您的详细信息值,如

let details = result.value(forKey: "Detail") as! [[:]]

let detailVC = DetailViewController()
detailVC.details = details // Pass your detail values from ViewController1 to DetailViewController

在DetailViewController

中显示您的详细信息值
print(details)

for detail in details {
  // retrive all values in loop
  let phone = detail.value(forKey: "Phone") as! String
  let tid = detail.value(forKey: "Tid") as! Int
  let gid = detail.value(forKey: "Gid") as! Int

  print("phone: \(phone), tid: \(tid), gid: \(gid)") // print values
}