Created
November 11, 2021 04:54
-
-
Save khle/4ba44c84f6cab3665e1496ed0b8364bb to your computer and use it in GitHub Desktop.
spaceX.kt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// To parse the JSON, install Klaxon and do: | |
// | |
// val spaceX = SpaceX.fromJson(jsonString) | |
package my.androidapp.models | |
import com.beust.klaxon.* | |
private val klaxon = Klaxon() | |
data class SpaceX ( | |
val data: Data | |
) { | |
public fun toJson() = klaxon.toJsonString(this) | |
companion object { | |
public fun fromJson(json: String) = klaxon.parse<SpaceX>(json) | |
} | |
} | |
data class Data ( | |
val launchesPast: List<LaunchesPast> | |
) | |
data class LaunchesPast ( | |
@Json(name = "mission_name") | |
val missionName: String, | |
@Json(name = "launch_date_local") | |
val launchDateLocal: String, | |
@Json(name = "launch_site") | |
val launchSite: LaunchSite, | |
val links: Links, | |
val rocket: Rocket, | |
val ships: List<Ship> | |
) | |
data class LaunchSite ( | |
@Json(name = "site_name_long") | |
val siteNameLong: String | |
) | |
data class Links ( | |
@Json(name = "article_link") | |
val articleLink: String? = null, | |
@Json(name = "video_link") | |
val videoLink: String | |
) | |
data class Rocket ( | |
@Json(name = "rocket_name") | |
val rocketName: String, | |
@Json(name = "first_stage") | |
val firstStage: FirstStage, | |
@Json(name = "second_stage") | |
val secondStage: SecondStage | |
) | |
data class FirstStage ( | |
val cores: List<CoreElement> | |
) | |
data class CoreElement ( | |
val flight: Long, | |
val core: CoreCore | |
) | |
data class CoreCore ( | |
@Json(name = "reuse_count") | |
val reuseCount: Long, | |
val status: String? = null | |
) | |
data class SecondStage ( | |
val payloads: List<Payload> | |
) | |
data class Payload ( | |
@Json(name = "payload_type") | |
val payloadType: String, | |
@Json(name = "payload_mass_kg") | |
val payloadMassKg: Long? = null, | |
@Json(name = "payload_mass_lbs") | |
val payloadMassLbs: Double? = null | |
) | |
data class Ship ( | |
val name: String, | |
@Json(name = "home_port") | |
val homePort: String, | |
val image: String | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment