為さねば成らぬ

retia.verno@gmail.com

GsonでtoJsonする時にフィールドをsnake caseにしたい

背景

Kotlinで書いてると通常クラス名やフィールド名はCamelCaseにする。

ネイティブのクラスをJavascriptに渡そうとする時にsnake_caseとして扱われることがある。

課題

JavascriptにわたすためにクラスをJsonの文字列に変換したいが、フィールド等がCamelCaseになってしまう。

結論

FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES を用いる。

val gson = GsonBuilder()
            .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
            .create()
val jsonStr = gson.toJson(hogehoge)