Skip to content

Commit

Permalink
Merge pull request #40 from hotwired/json-serialization-update
Browse files Browse the repository at this point in the history
JSON serializer configuration update
  • Loading branch information
jhutarek committed Aug 27, 2024
2 parents 1bd1409 + fec46a8 commit a8d3330
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
9 changes: 8 additions & 1 deletion strada/src/main/kotlin/dev/hotwire/strada/JsonExtensions.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev.hotwire.strada

import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
Expand Down Expand Up @@ -27,4 +28,10 @@ internal inline fun <reified T> String.decode(): T? = try {
null
}

private val json = Json { ignoreUnknownKeys = true }
@OptIn(ExperimentalSerializationApi::class)
private val json = Json {
ignoreUnknownKeys = true
encodeDefaults = true
explicitNulls = false
isLenient = true
}
12 changes: 9 additions & 3 deletions strada/src/main/kotlin/dev/hotwire/strada/StradaJsonConverter.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dev.hotwire.strada

import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import java.lang.Exception

abstract class StradaJsonConverter {
companion object {
Expand Down Expand Up @@ -42,12 +42,18 @@ abstract class StradaJsonTypeConverter : StradaJsonConverter() {
}

class KotlinXJsonConverter : StradaJsonConverter() {
val json = Json { ignoreUnknownKeys = true }
@OptIn(ExperimentalSerializationApi::class)
val json = Json {
ignoreUnknownKeys = true
encodeDefaults = true
explicitNulls = false
isLenient = true
}

inline fun <reified T> toObject(jsonData: String): T? {
return try {
json.decodeFromString(jsonData)
} catch(e: Exception) {
} catch (e: Exception) {
logException(e)
null
}
Expand Down

0 comments on commit a8d3330

Please sign in to comment.