Skip to content

Instantly share code, notes, and snippets.

@khle
Created November 11, 2021 04:54
Show Gist options
  • Save khle/4ba44c84f6cab3665e1496ed0b8364bb to your computer and use it in GitHub Desktop.
Save khle/4ba44c84f6cab3665e1496ed0b8364bb to your computer and use it in GitHub Desktop.
spaceX.kt
// 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