问答

HandyJSON 解析嵌套model报错

作者:admin 2021-06-07 我要评论

这是解析: func getBlogList() { let url = URL.init(string: "https://www.jianshu.com/asimov/users/slug/4212f351f6b5/public_notes")! AF.request(url, met...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

这是解析:

func getBlogList() {
    let url = URL.init(string: "https://www.jianshu.com/asimov/users/slug/4212f351f6b5/public_notes")!
    AF.request(url, method: .get, parameters: nil).responseString { (response) in
        switch response.result {
        case .success(let resultString):
            self.dataArray = [BlogEntity].deserialize(from: resultString)!
            self.tableView.reloadData()
        case .failure(let error):
            SVProgressHUD.showInfo(withStatus: error.errorDescription)
        }
    }
}

这是 model:

class BlogEntity: BlogBaseModel {
    
    var object: BlogObject?
    
    class BlogObject: BlogBaseModel {
        
        var type: Int = 0
        var data: BlogModel?
        
        class BlogModel: BlogBaseModel {
            
            var id = 0
            var title = ""
            var slug = ""
            var list_image_url = ""
            var first_shared_at = ""
            var public_abbr = ""
            var paid = false
            var commentable = false
            var is_top = false
            var total_fp_amount = 0
            var public_comments_count = 0
            var total_rewards_count = 0
            var likes_count = 0
            var views_count = 0
            var user: BlogUser?
            
        }
        
    }
    
}

class BlogUser: BlogBaseModel {
    var id = 0
    var nickname = ""
    var slug = ""
    var avatar = ""
}

class BlogBaseModel: HandyJSON {
    required init() {}
}

解析的时候报错:

[BlogEntity].deserialize(from: resultString)!

强制解包的错。

我看了很久也没看出是哪里出了问题。。。

注:那个url可以直接复制到浏览器打开。

###

试试解析的时候这样写:

if let arr = json as? [[String:Any]] {
    let dataArray = [BlogEntity].deserialize(from: arr)!
    print(dataArray)
}

我用你的写法是可以正确解析的,如果不是你没有确定json字符串的样式,那可能就是你封装的网络请求方法有问题了。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • HandyJSON 解析嵌套model报错

    HandyJSON 解析嵌套model报错

  • IOS打包提示:Team is not enrolled in

    IOS打包提示:Team is not enrolled in

  • react 怎么阻止点击子元素触发父元素事

    react 怎么阻止点击子元素触发父元素事

  • 关于java多串口通讯

    关于java多串口通讯

腾讯云代理商
海外云服务器