@SerializedName
Gsonを使用したAndroid でのアノテーションの基本的な目的は何ですか?
いくつかの例を挙げてください。利用の主な目的がわかりません。
@SerializedName
Gsonを使用したAndroid でのアノテーションの基本的な目的は何ですか?
いくつかの例を挙げてください。利用の主な目的がわかりません。
回答:
Javaクラスの例
public class Person {
@SerializedName("name")
private String personName;
@SerializedName("bd")
private String birthDate;
}
このクラスには、人の名前と生年月日を表す2つのフィールドがあります。これらのフィールドには、@ SerializedNameアノテーションが付けられています。このアノテーションのパラメーター(値)はserialising
、deserialising
オブジェクトおよびオブジェクトで使用される名前です。たとえば、JavaフィールドpersonNameは、JSON では名前として表されます。
JSONの例、
{
"name":"chintan",
"bd":"01-01-1990"
}
Json
は役に立ちました
すでにいくつかの回答がありますがProGuard
、コードを難読化するために使用@SerializedName("name")
していて、モデルクラスで使用しない場合、GSONは機能しません。難読化が原因で、GSONがjson へのキーを検索して失敗するため、変数名がからString name
に変わり、String a
GSONの解析が壊れる可能性がありますa
。
を指定すると@SerializedName
、GSONは変数名に基づいてjsonを検索せず、指定され@SerializedName
たものを使用します。
もちろん、モデルを難読化しないようにproguardに指示できますが、モデルを難読化したい場合は、次のように指定する必要があります。 @SerializedName