【问题标题】:How to use objectmapper for nested json in swift?如何在swift中使用objectmapper进行嵌套json?
【发布时间】:2016-02-02 07:54:01
【问题描述】:

我正在使用对象映射器库快速将 JSON 解析为对象,我有一个如下所示的 JSON:

"_links" :     {
    "category.genres":         {
        "href" : "http://dev.abcd.com/api/v1/categories/series/genres"
    }

}

我正在尝试将 href 映射到模型,但在这里找不到任何解决方案。 我试着做

genreLink <- (map["_links"]["category.genres",nested: false]["genres"],urlTransform)

但它不起作用,请指导。谢谢

【问题讨论】:

    标签: swift jsonobject objectmapper


    【解决方案1】:

    很遗憾,我认为使用 ObjectMapper 的嵌套键功能不支持您的情况。这是因为嵌套中的一个键已经有一个句点。如果不是,则映射如下所示:

    genreLink &lt;- (map["_links.category_genre.href"], urlTransform)

    不支持像您在上面所做的那样链接映射。为了正确映射它,我认为您需要为 Links 和 Category.genres 创建一些模型类(实现 Mappable),或者尽可能更改 API 响应。

    【讨论】:

    • 感谢您的及时回复。我想我将不得不使用模型类,因为 API 响应不在我的控制范围内。
    • @tristan_him,你是说genreLink
    【解决方案2】:

    根据文档:

    当您有包含 . 的嵌套键时,您可以按如下方式传递自定义嵌套键分隔符 (#629):

    func mapping(map: Map) {
        appName <- map["com.myapp.info->com.myapp.name", delimiter: "->"]
    }
    

    参考:Custom nested key delimiter in mapping

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多