色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Gson 對象 json

林玟書1年前8瀏覽0評論

Gson是一個Java庫,用于將對象轉換為其JSON表示形式,以及將JSON字符串轉換為Java對象。JSONObject和JSONArray是Android提供的JSON庫,但是Gson比它們更方便。以下是使用Gson將對象轉換為JSON字符串和將JSON字符串轉換為對象的示例。

//將Java對象轉換為JSON字符串
Gson gson = new Gson();
Person person = new Person();
person.setName("John");
person.setAge(30);
String json = gson.toJson(person);
System.out.println(json); 
//將JSON字符串轉換為Java對象
String json = '{"name":"John", "age":30}';
Person person = gson.fromJson(json, Person.class);
System.out.println(person.getName() + " " + person.getAge());

在上面的示例中,我們定義了一個Person類,并使用Gson將其轉換為JSON字符串。我們還演示了如何將JSON字符串轉換回Person對象。

Gson還支持將集合轉換為JSON數組和將JSON數組轉換為集合。以下是一些示例代碼:

//將集合轉換為JSON數組
Gson gson = new Gson();
Listlanguages = new ArrayList();
languages.add("Java");
languages.add("Python");
languages.add("C++");
String json = gson.toJson(languages);
System.out.println(json);
//將JSON數組轉換為集合
String json = '["Java", "Python", "C++"]';
Type collectionType = new TypeToken>(){}.getType();
Listlanguages = gson.fromJson(json, collectionType);
System.out.println(languages);

在上面的示例中,我們定義了一個字符串列表,并將其轉換為JSON數組。我們還演示了如何將JSON數組轉換為集合。

Gson非常靈活,并允許您自定義序列化和反序列化過程。例如,您可以使用自定義委托來序列化或反序列化特定類型的對象。以下是一些示例代碼:

//自定義委托來序列化和反序列化日期對象
Gson gson = new GsonBuilder()
.registerTypeAdapter(Date.class, new JsonSerializer() {
public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) {
return new JsonPrimitive(src.getTime());
}
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) 
throws JsonParseException {
return new Date(json.getAsJsonPrimitive().getAsLong());
}
})
.create();
Date date = new Date();
String json = gson.toJson(date);
System.out.println(json);
Date date = gson.fromJson(json, Date.class);
System.out.println(date);

在上面的示例中,我們定義了一個自定義委托,用于將日期對象序列化為時間戳,并從時間戳反序列化為日期對象。我們注冊此委托以便Gson在遇到日期對象時能夠正確地序列化它們。