簡體   English   中英

使用 Alamofire 和 SwiftyJson 在 Json 中獲取服務器狀態

[英]get Server status in Json With Alamofire and SwiftyJson

我用 Alamofire 和 SwiftyJson 解析 Json,並在 Table View 上使用它。 我正確解析了 JSON 中的結果部分,但無法將狀態部分提取到 Swifty JSON 中並使用它。 問題是我如何將狀態部分解析為現有方法。

JSON:

{
    "result": [
        {
            "Id": 5,
            "Title": "test",
            "EnTitle": "Story and Novel"
        },
        {
            "Id": 38,
            "Title": "test",
            "EnTitle": " Motivational"
        }
    ],
    "status": {
        "message": "Done",
        "success": true,
        "systemDateTime": "2019-12-00R14:13:25+03:30",
        "httpStatusCode": 200
    }
}

視圖控制器:

var arrayId = [String]()
var arrayTitle = [String]()
var arrayEntitle = [String]()

override func viewDidLoad() {
    super.viewDidLoad()

    newApiMethod()

}

func newApiMethod() {

    AF.request(BASE_URL!, method: .get, headers: headers).response { (response) in

        switch response.result {

        case .success:
            let fetchedResult = try? JSON(data: response.data!)
            let resultArray = fetchedResult!["result"]

            self.arrayId.removeAll()
            self.arrayTitle.removeAll()
            self.arrayEntitle.removeAll()

            for i in resultArray.arrayValue {
                print(i)
                let Id = i["Id"].stringValue
                self.arrayId.append(Id)
                let Title = i["Title"].stringValue
                self.arrayTitle.append(Title)
                let enTitle = i["EnTitle"].stringValue
                self.arrayEntitle.append(enTitle)
            }

            break
        case .failure:
            print(response.error!)
            break

        }
    }
}

您可以像訪問result字段一樣訪問status字段。

使用let status = fetchedResult!["status"]並訪問像status["success"]

這是一個很好的教程, https://www.hackingwithswift.com/example-code/libraries/how-to-parse-json-using-swiftyjson

我是這樣做的:

    var getSuccess = String()
    var getTime = String()

AF.request(BASE_URL!, method: .get, headers: headers).response { (response) in

            switch response.result {

            case .success:
                let fetchedResult = try? JSON(data: response.data!)
                let resultArray = fetchedResult!["result"]
                let status  = fetchedResult!["status"]

                self.arrayId.removeAll()
                self.arrayTitle.removeAll()
                self.arrayEntitle.removeAll()

                self.getSuccess = status["success"].stringValue
                self.getTime = status["systemDateTime"].stringValue

                print(self.getSuccess)
                print(self.getTime)

                for i in resultArray.arrayValue {
                    print(i)
                    let Id = i["Id"].stringValue
                    self.arrayId.append(Id)
                    let Title = i["Title"].stringValue
                    self.arrayTitle.append(Title)
                    let enTitle = i["EnTitle"].stringValue
                    self.arrayEntitle.append(enTitle)
                }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM