【问题标题】:Trouble parsing json from Scryfall无法从 Scryfall 解析 json
【发布时间】:2020-11-02 03:43:12
【问题描述】:

所以...我是新手。从四月份开始,我就一直在尝试自学如何编程。但我一直很tach。所以...免责声明...

我正在尝试制作一个基于 Magic the Gathing 的应用程序。我正在尝试使用 Scryfall 的数据库作为后端(因此我不必自己对所有 20,000 张卡片进行编目)。但是我在解析 json 时遇到了错误。

我尝试跟随 Hacking with Swift 的视频系列。我尝试了两种主要方法。

方法一、下载批量数据,保存到项目中,本地解析。

方法 2. 使用 URLSession。

两次我都卡在同一个地方。

if let decodedResponse = try? JSONDecoder().decode(Response.self, from: data)

不知何故,那部分总是失败。仅当我将 json 的(很小的)部分作为let json = """ [{ stuff: stuff, more stuff: more stuff}]""" 直接粘贴到主 .swift 文件中时,它才有效。但无论何时我使用Bundle.main.path(forResource: " nameOfFile", ofType: "json") 或 URLSession,它都会在解码行完全失败。

  • 理论 1. Scryfall 没有使用符合 Codable 的 json?
  • 理论 2. 我保存数据的结构没有正确“捕捉”解码后的数据。

Scryfall API

hacking with Swift > Codable cheat sheet

hacking with Swift > Sending and receiving Codable data with URLSession and SwiftUI

编辑:crosspost to Reddit > iOSDev

【问题讨论】:

    标签: ios json parsing


    【解决方案1】:

    您的“响应”类可能并不完全正确。你可以使用一些 line quicktype 来生成模型类。

    您也可以使用 JSON-Validator 来验证他们网站 (https://jsonlint.com) 中的 json,但我认为他们方面没有错

    还可以查看 JSON-Decoder 的错误处理:Error handling using JSONDecoder in Swift

    如果没有更多细节,我无法为您提供更多帮助。尝试发布一个 sn-p(响应模型 + 代码),以便我们分析问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多