Ios 在swiftui中访问嵌套数组值?

Ios 在swiftui中访问嵌套数组值?,ios,arrays,swift,Ios,Arrays,Swift,我有一个正在使用的嵌套数组 我需要从这个嵌套数组中访问一些值 我可以使用代码访问根值,但不能访问嵌套值 这是我当前的代码: // MARK: - Root struct RootD: Codable { let id: Int let books: String let regs: [SightingsD] enum CodingKeys: String, CodingKey {

我有一个正在使用的嵌套数组

我需要从这个嵌套数组中访问一些值

我可以使用代码访问根值,但不能访问嵌套值

这是我当前的代码:

    // MARK: - Root
    struct RootD: Codable {
        let id: Int
        let books: String
        let regs: [SightingsD]
        
    
        enum CodingKeys: String, CodingKey {
            case id = "id"
            case serial = "books"
            case regs = "regs"
        }
    }
    
    
    struct SightingsD: Codable, Identifiable {
        public var id: Int
        public var regNo: String
     
    
        
        enum CodingKeys: String, CodingKey {
            case id = "id"
            case regNo = "regNo"
    
            }
    }

我可以像这样访问根目录:

          if let str = String(data: data!, encoding: .utf8) {
             
                let data = str.data(using: .utf8)!
                do {
                    if let jsonArray = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? NSDictionary
                    {

                        books = jsonArray["books"] as! String

                        
                    } else {
                        print("bad json")
                    }
                } catch let error as NSError {
                    print(error)
                }

            }


但是我怎样才能访问像
regNo
这样的东西呢?

你不用
JSONDecoder

guard let data = data else { return }
  do {
       let res = try JSONDecoder().decode(RootD.self, from:data)  
       res.regs.forEach { 
           print($0.regNo)
       }
     
  } catch {
      print(error)
  }

你有数据,然后你把它转换成字符串,然后再转换成数据?为什么?直接将其用作数据