読者です 読者をやめる 読者になる 読者になる

tumblr

tumblr(タンブラー)は、メディアミックスブログサービス。ブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスである。アメリカのDavidville.inc(現: Tumblr, Inc.)により2007年3月1日にサービスが開始された。

jacksonでの命名規則変換

jacksonはretrofitでサーバ側とやり取りするときに、APIサーバから返ってきたjsonのレスポンスをjavaのオブジェクトに変換するために使っている。

僕の場合、APIサーバをrailsで作っているため基本変数名などはスネークケースで書いている。でもjava側というかandroid側はキャメルケースになっている。どっちかをどっちかに合わせなきゃいけないのは面倒。なのでjacksonでスネークケース=>キャメルケースに命名規則を変換してほしいのだけど、結構簡単にできる。

new ObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES)

これでOK。オブジェクトマッパー作成時にそういう感じのメソッドを呼べばいい。 retrofitで使う場合は、builder作成時に指定すればいい。

private Retrofit.Builder builder = new Retrofit.Builder()
                    .baseUrl("http://192.168.1.1./")
                    .addConverterFactory(JacksonConverterFactory.create(
                            new ObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES)
                    ));

参考: java - Jackson overcoming underscores in favor of camel-case - Stack Overflow