【问题标题】:SwiftyJSON Outputs null when trying to parse JSONSwiftyJSON 尝试解析 JSON 时输出 null
【发布时间】:2022-11-12 15:33:54
【问题描述】:

我正在尝试从 Firebase 获取数据,并通过 SwiftyJSON 对其进行解析,但这样做时,它只会返回 null。据我所知,JSON 格式正确,并且我正在正确解析它,所以我没有完全确定这里发生了什么。任何帮助表示赞赏!

func decodeFamily(lName: String) {
        //var family: Family
        db.collection("families").document(lName).getDocument { documentSnapshot, error in
            if documentSnapshot?.data() != nil {
                do {
                    let data = try? JSONSerialization.data(withJSONObject:documentSnapshot?.data())
                    let json = try JSON(data: data!)["data"]
                    print(json["id"])
                    //family = Family(id: json["id"].rawValue, familyName: json["familyname"].rawValue, members: ...)
                } catch (let error) {
                    print("[FetchFamily] Error: \(error)")
                }
                
            }
        }
    }

上面的代码只是尝试从 Firebase 获取数据,将 Firebase 返回的字符串转换为 JSON,然后尝试从 JSON 中读取“id”。单独打印 JSON 时,这很好,但是当尝试从中读取任何数据时,它会返回 null。 这是 JSON 输出:

{
   "id": "---", 
   "familyName": "---",
   "members": [
      {
         "id": "---",
         "chores": [],
         "lName": "---",
         "role": "ParentGuardian",
         "fName": "---"
      }
   ]
}

我试图读取的“id”是那里的第一个 id。同样,它会自行正确输出 JSON,但是在尝试读取“id”时,它会失败。我很确定我这样做是正确的,但我很有可能不是。

【问题讨论】:

  • JSON中没有键data,删除["data"]。请停止使用 SwiftyJSON,因为 Swift 4 支持Codable,它已经过时了。

标签: json swift firebase google-cloud-firestore swifty-json


【解决方案1】:

字体=“资产/字体/蒙特塞拉特/蒙特塞拉特-Bold.otf” 字符串加粗 将 html 字符串解析为文本 im 使用 HtmlCompat.fromHtml(htmlText, HtmlCompat.FROM_HTML_MODE_LEGACY) 我正在使用的 HTML 字符串示例:

你需要什么?

我的目标是找到一种让 Android 中的效果看起来与 iOS 中相同的方法

安卓

【讨论】:

    猜你喜欢
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多