zoukankan      html  css  js  c++  java
  • SwiftUI 中Codable的作用?

    
    
    //        struct Animal: Codable{
    //            var name: String
    //            var age: Int
    //        }
    //
    //        let jsonStr = "{"name" : "dog", "age" : 5}"
    //        guard let jsonData = jsonStr.data(using: .utf8) else {
    //            exit(0)
    //        }
    //
    //        let decoder = JSONDecoder()
    //        guard let obj = try? decoder.decode(Animal.self, from: jsonData) else {
    //            exit(0)
    //        }
    //
    //        print(obj.name)
    //        print(obj.age)
            
            //当json中的key值与我们定义的属性名对应时可以采用上述简单的方法, 如果不对应的话就需要借助CodingKeys来实现
            
            struct Animal: Codable{
                var name: String
                var age: Int
                
                enum CodingKeys: String, CodingKey {
                    case name = "a_name"
                    //case age = "age" //如果前后一致的话 可以省略=以及后边的部分 如 case age, 如果有需要忽略的key, 则不写到此处便可
                    case age
                }
            }
            
            let jsonStr = "{"a_name" : "dog", "age" : 5}"
            guard let jsonData = jsonStr.data(using: .utf8) else {
                exit(0)
            }
            
            let decoder = JSONDecoder()
            guard let obj = try? decoder.decode(Animal.self, from: jsonData) else {
                exit(0)
            }
            
            print(obj.name)
            print(obj.age)
    
    此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935. 我的gitHub: (学习代码都在gitHub) https://github.com/nwgdegitHub/
  • 相关阅读:
    js常用代码整理
    java 序列化时排除指定属性
    FastJson bean序列化属性顺序问题
    用logger在控制台打印信息
    UNITY 内存问题资料收集
    数组指针和指针数组的区别
    inl文件介绍
    C++防止文件重复包含
    VS2017 Intelligense C++ 设置的几个重点
    GPU架构图
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/12625615.html
Copyright © 2011-2022 走看看