Pepsi Max Enjoyer
12/02/2024, 4:21 PMPepsi Max Enjoyer
12/02/2024, 4:22 PMdata class Something(@Json(name="foo_bar") val fooBar: String)
object MyMoshi : ConfigurableMoshi(
com.squareup.moshi.Moshi.Builder().asConfigurable()
.withStandardMappings()
.text(::Something, Something::fooBar)
.done()
)
Pepsi Max Enjoyer
12/02/2024, 4:22 PMPepsi Max Enjoyer
12/02/2024, 4:27 PMval moshi: Moshi = Moshi.Builder().build()
val adapter: JsonAdapter<Something> = moshi.adapter(Something::class.java)
something = requireNotNull(adapter.fromJson(json))
dave
12/02/2024, 4:35 PMs4nchez
12/02/2024, 4:35 PMval something = Something("hello")
val json = MyMoshi.asFormatString(something)
println(json)
val fromJson = MyMoshi.asA(json, Something::class)
println(fromJson)
Pepsi Max Enjoyer
12/02/2024, 4:36 PMs4nchez
12/02/2024, 4:37 PMorg.http4k.format.Moshi
rather than defining your own objectPepsi Max Enjoyer
12/02/2024, 4:57 PMJames Richardson
12/02/2024, 7:08 PMMichal Wachowski
12/02/2024, 9:45 PMval something = Something("hello")
val lens = MyMoshi.asBiDiMapping<Something>()
val json = lens(something)
println(json)
val fromJson = lens(json)
println(fromJson)
And mimics the approach you would use with Request/Response body lensesPepsi Max Enjoyer
12/04/2024, 9:17 PMdave
12/04/2024, 9:22 PMJames Richardson
12/04/2024, 9:28 PM