こんにちは、さるまりんです。
タイトルの通りなのですが、JSONのプロパティ名とJavaの変数名が異なる文字列のことがあります。
例えばこんなケースです。
公開日を表すJSONプロパティがrelease-date
と定義されています。
↓のような感じです。
{
"release-date":"2020-11-16"
}
では、これを受けるJavaのプログラムはどうでしょう。
private String release-date;
↑これはNGです。Javaの変数名に-
を含むことはできません。
変数を定義するにはこうですね。
private String releaseDate;
release-date
とreleaseDate
、異なりますね。
JSONのプロパティ名にハイフンを使うのはありか?という議論もありそうですが、それはまた別の話として考えるとして、今はこの問題をどうしましょう?
こんな時は@JsonProperty
アノテーションでJSON側の名前の文字列を指定できます。
@JsonProperty("release-date")
private String releaseDate;
ちなみにこのreleaseDate
ですがデータベース上ではrelease_date
カラムに保存されていたりします。
システムや言語によって命名規則が違ったり、慣習が違ったりと様々です。
それらをうまく繋ぐことができる仕組みがあるっていうのが素敵です。
読んでくださってありがとうございます。
それではまた!