2025-01-23 20:36
因為 Gson 是以 Java 為 base 去設計的玩意,在 property 的 nullable safty. 與 Kotlin 相性相當不合。最直白的問題是因為 Gson 用 Reflaction 可以繞過 compiling checking ,在 Runtime 把 property 從 non-nullable 變成 null,直接讓應用程式邏輯錯亂閃退。所以要換成 Kotlin Serialization 我到現在公司後要幹一樣的事情。
前公司的資料環境相對於現在好很多,改起來比較沒有障礙,現在一個資料滿是大便的環境,用著就感覺東卡西卡的。
Serialization 的 Serilizer 沒有 Gson 的 Adapter 好用,寫起來會相對於 Gson 囉嗦很多,主要是因為 Serialization 是偏向 compiler setting 的,所以很多東西要先定義好,比如說這個 boolean 若要讓他跑 customer serializer,那你需要加上一個 annotation,好讓 compiler 在 gen code 時候知道他需要額外處理。