File tree 2 files changed +17
-4
lines changed
strada/src/main/kotlin/dev/hotwire/strada
2 files changed +17
-4
lines changed Original file line number Diff line number Diff line change 1
1
package dev.hotwire.strada
2
2
3
+ import kotlinx.serialization.ExperimentalSerializationApi
3
4
import kotlinx.serialization.decodeFromString
4
5
import kotlinx.serialization.encodeToString
5
6
import kotlinx.serialization.json.Json
@@ -27,4 +28,10 @@ internal inline fun <reified T> String.decode(): T? = try {
27
28
null
28
29
}
29
30
30
- private val json = Json { ignoreUnknownKeys = true }
31
+ @OptIn(ExperimentalSerializationApi ::class )
32
+ private val json = Json {
33
+ ignoreUnknownKeys = true
34
+ encodeDefaults = true
35
+ explicitNulls = false
36
+ isLenient = true
37
+ }
Original file line number Diff line number Diff line change 1
1
package dev.hotwire.strada
2
2
3
+ import kotlinx.serialization.ExperimentalSerializationApi
3
4
import kotlinx.serialization.decodeFromString
4
5
import kotlinx.serialization.encodeToString
5
6
import kotlinx.serialization.json.Json
6
- import java.lang.Exception
7
7
8
8
abstract class StradaJsonConverter {
9
9
companion object {
@@ -42,12 +42,18 @@ abstract class StradaJsonTypeConverter : StradaJsonConverter() {
42
42
}
43
43
44
44
class KotlinXJsonConverter : StradaJsonConverter () {
45
- val json = Json { ignoreUnknownKeys = true }
45
+ @OptIn(ExperimentalSerializationApi ::class )
46
+ val json = Json {
47
+ ignoreUnknownKeys = true
48
+ encodeDefaults = true
49
+ explicitNulls = false
50
+ isLenient = true
51
+ }
46
52
47
53
inline fun <reified T > toObject (jsonData : String ): T ? {
48
54
return try {
49
55
json.decodeFromString(jsonData)
50
- } catch (e: Exception ) {
56
+ } catch (e: Exception ) {
51
57
logException(e)
52
58
null
53
59
}
You can’t perform that action at this time.
0 commit comments