Swift:JSON 解析未显示在 UILabel 中,但可以使用 Alamofire 在输出窗口中看到

Posted

技术标签:

【中文标题】Swift:JSON 解析未显示在 UILabel 中,但可以使用 Alamofire 在输出窗口中看到【英文标题】:Swift: JSON parsing not showing up in UILabel but can see in output window using Alamofire 【发布时间】:2018-07-03 08:28:31 【问题描述】:

我是编码新手,似乎没有向UILabel 显示每日报价。 使用http://quotes.rest/qod.json 输出控制台正在显示结果,但 UILabel 中没有任何内容。 任何帮助是极大的赞赏。

以下是来自网站的 JSON 格式:


    "success": 
        "total": 1
    ,
    "contents": 
        "quotes": [
            
                "quote": "You make a living by what you earn",
                "length": "69",
                "author": "Winston  Churchill",
                "tags": [

                    "inspire"
                ],
                "category": "inspire",

                "id": "XZiOy4u9_g4Zmt7EdyxSIgeF"
            
        ],
        "copyright": "2017-19 theysaidso.com"
    

我用来解析上述 JSON 的 Swift 代码是:

import Alamofire
import SwiftyJSON


class DailyQuotes 


    private var _quotes: String!
    private var _author: String!

    var quotes: String
    
        if _quotes == nil
        
            _quotes = ""
        
        return _quotes
    



    /// Downloading Current Weather Data


    func downloadQuotes(completed: @escaping DownloadComplete)


            Alamofire.request(QuotesDaily).responseJSON 
 (response) in

                let result = response.result
                print(result.value)
                let json = JSON(result.value!)


             self._quotes = json["contents"]["quotes"]["quote"].stringValue

                completed()
            
             


 

ViewConrtroller.swift

func  updateQuotesUI()

   quoteLabel.text = dailyQuotes.quotes
    

【问题讨论】:

【参考方案1】:

引号是一个数组

let arr = json["contents"]["quotes"].arrayValue
self._quotes = arr[0]["quote"].stringValue

【讨论】:

非常感谢老板 :)

以上是关于Swift:JSON 解析未显示在 UILabel 中,但可以使用 Alamofire 在输出窗口中看到的主要内容,如果未能解决你的问题,请参考以下文章

swift 4 Alamofire 解析数据并在 UILabel 上显示?

Json 解析错误:在 Swift iOS 中使用未声明的类型“Foundation”

JSON数据未在swift3中使用Alamofire进行解析

使用未解析的标识符 'json' (Swift 3) (Alamofire)

在 Swift 中使用 UISlider 以编程方式更改 UILabel

Swift:使用未解析的标识符“json”