SwiftyJSON-解析数组中的数组(以及数组中的数组中的数组,等等)

时间:2019-05-15 09:23:08

标签: arrays json swift swifty-json

我正在使用SwiftyJSON和Alamofire。我从我的API中收到了一个大型JSON:

https://jsonblob.com/fb7a0580-76ef-11e9-a860-77ef092d8799

在此JSON中,我有兴趣解析以下级别以在我的应用中使用:

[旅程] [旅程] [腿]

(我可能也会对其他级别感兴趣,但是我可以使用在这里学到的知识并应用于这些级别)

我可以很好地解析第一阶段的[旅程],但是当我进入更深层次时,我会感到挣扎


我在单独的DataModel.swift文件中创建了一个“ JourneyClass”:

class JourneyClass {

var duration: String = "" // in [journeys] level
var startDateTime: String = ""  // in [journeys] level
var legDuration: String = ""  // in [journeys][legs] level

init() {}


init(json:JSON){

    duration = json["duration"].stringValue
    startDateTime = json["startDateTime"].stringValue
    legDuration = json["legs"]["duration"].stringValue

}   

}

在ViewController.swift中,我具有以下功能:

func getJourneyData(url: String) {

    Alamofire.request(url, method: .get).responseJSON {
        response in
        if response.result.isSuccess {
            print("Success!!")

            let data : JSON = JSON(response.result.value!) // i.e, the json response goes into variable "data"


            let journeysJSON = data["journeys"].arrayValue // "journeys" refers to the "journeys level" within the response JSON

            for item in journeysJSON {


                let jl = JourneyClass(json: item)
                self.theJourneyData.append(jl)



            for innerItem in item["legs"].arrayValue {

                let kl = JourneyClass(json: innerItem)
                self.theJourneyData.append(kl)

                } //likely where I am messing up completely  
            }

需要一些关于如何解析到[旅程] [腿]级别的帮助

谢谢

0 个答案:

没有答案