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)