JSON を解析、出力で使うJackson で、JSONのキー、 Property Name を
Snake CASE にしたり Camel CASE にしたりする
PropertyNamingStrategy.SNAKE_CASE
PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES
は、バージョン 2.12 から、@Deprecated になってた!
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
のように使ってたと思う。
なんでも、非奨励になった理由は、以下に書いてある。
`PropertyNamingStrategy` class initialization depends on its subclass, this can lead to class loading deadlock · Issue #2715 · FasterXML/jackson-databind · GitHub
Jackcson でこれら使用するCASE は、、
KEBAB_CASE | ケバブケース lower-case” or “first-name” |
LOWER_CASE | 区切り文字無し All letters are lowercase |
SNAKE_CASE | Snake case separator = "_" |
UPPER_CAMEL_CASE | CAMEL case 先頭も大文字 |
であるが、
PropertyNamingStrategy から、
PropertyNamingStrategies での定義に変わった。
Jackson 2.12 からは、以下のようにすること。
スネークケース(ただし、全部小文字)
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
キャメルケース(先頭は小文字)
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.LOWER_CAMEL_CASE);
キャメルケース(先頭は大文字)
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.UPPER_CAMEL_CASE);