データ交換JSON Gson

Gsonは、JavaオブジェクトとJSONデータのJavaクラスライブラリ間のマッピングのためにGoogleが提供されます。JSON文字列は、Javaオブジェクト、またはその逆に変換することができます。

Gsonのまず、基本的な使い方

構文解析の基本データ型(他の種類を解析する文字列)

Gson gson = new Gson();
int i = gson.fromJson("100", int.class);              //100
double d = gson.fromJson("\"99.99\"", double.class);  //99.99
boolean b = gson.fromJson("true", boolean.class);     // true
String str = gson.fromJson("String", String.class);   // String

基本データ型の生成

Gson gson = new Gson();
String jsonNumber = gson.toJson(100);       // 100
String jsonBoolean = gson.toJson(false);    // false
String jsonString = gson.toJson("String"); //"String"

JSONを生成POJOクラス

Gson gson = new Gson();
User user = new User("毛驴哥",24);
String jsonObject = gson.toJson(user);     // {"name":"毛驴哥","age":24}

POJOクラスの解析JSON

Gson gson = new Gson();
String jsonString = "{\"name\":\"毛驴哥\",\"age\":24}";
User user = gson.fromJson(jsonString, User.class);

第二に、プロパティが@SerializedNameアノテーションを使用して名前を変更します

EMAIL_ADDRESSは、JSONのプロパティ名に対応することができますEMAILADDRESS

@SerializedName("email_address")
public String emailAddress;

SerializedName注釈が上記使用さ一方が2つの属性が、提供、プロパティが存在しない外側の代替文字列の配列を受け取ります。

@SerializedName(value = "emailAddress", alternate = {"email", "email_address"})
public String emailAddress;

正しい結果のいずれかが得られる場合に3つのプロパティ(EMAIL_ADDRESS、電子メール、EMAILADDRESS)が発生します。

三、Gsonは、ジェネリックを使用します

Javaのリストについては、 そして一覧 多分これは、使用してJavaのジェネリックはジェネリックが消去ことに留意すべきであるとき問題であり、唯一のList.classあるバイトコードファイルを持っています。
上記課題を解決するために、Gsonは、私たちはジェネリックのサポートを実装するためにTypeToken提供します

Gson gson = new Gson();
String jsonArray = "[\"Android\",\"Java\",\"PHP\"]";
String[] strings = gson.fromJson(jsonArray, String[].class);    //直接改为 List<String>.class 是行不通
List<String> stringList = gson.fromJson(jsonArray, new TypeToken<List<String>>() {}.getType());

注意:TypeTokenコンストラクタが変更保護されて、それが新しいTypeToken <リストの一番上に書き込まれます >(){} .GetType()の代わりに新しいTypeToken <リストの >()。のgetType()

おすすめ

転載: www.cnblogs.com/loveer/p/11306338.html