Gson 搭配 Gsonformat 基本使用紀錄

Gson 為 Google製作,可將JSON內容和java object互相轉換的library。

對我來說最大的用途就是可直接將Server回傳的json訊息直接轉換成java object,而不用再一一寫對應的 JsonObject。

而GsonFormat為 android studio 的外掛,用途是當你取得json內容之後,可以幫你產生對應的java object。

兩者搭配起來就可以方便的處理Server回傳訊息。

首先是Gson的部分:
這裡為Gson github連結,相關的安裝和使用都有介紹。

1.Gson Dependency
在 module 的 build.gradle 加入

dependencies {  
...
implementation 'com.google.code.gson:gson:2.8.5'
}

2.Using in code
2-1. Json to java object
首先假設有個User 類別為對應的 java object
public class User {  

private String name;
private int age;
private String sex;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}
}

2-2. java object to json
(就是將已存在的java物件轉成json 格式的string)
  @Test  
public void test_UserToJSON() {
User foxx = new User();
foxx.setAge(99);
foxx.setName("Foxx");
foxx.setSex("male");

Gson gson = new Gson();
String result = gson.toJson(foxx, User.class);
System.out.println("userToJSON:" + result);
assertEquals("{\"name\":\"Foxx\",\"age\":99,\"sex\":\"male\"}", result);
}

第9行即透過 gsong.toJson將 java object轉成 json string

2-3. json to java object
  @Test  
public void test_JSONToUser() {
Gson gson = new Gson();
String source = "{\"name\":\"Foxx\",\"age\":99,\"sex\":\"male\"}";
User target = gson.fromJson(source, User.class);
assertNotNull(target);
}

第5行透過gson.fromJson將json string 轉成 java object

 

接著是GsonFormat
1.Install GsonFormat
安裝方式和一般的android studio 外掛相同。
開啟 android studio -> File -> Settings -> Plugins -> Browse repositories
->輸入 gsonformat -> install -> 安裝完成後 重開 android studio

2.How to use
2-1.首先手動建立對應的空class(只有類別名稱無其他內容),以上面的User為例,我們就先建立一個User的空class。
public class User {  

}

2-2.產生對應json 的內容
假設已取得Server回傳的json string 如下
{  
"name":"Foxx",
"sex":"male",
"age":"99"
}

回到2-1建立的User class,點擊上方工具欄的Code,再點擊 Generate,選擇GsonFormat,在顯示的視窗中貼上2-2的內容。


點擊OK -> 再點擊OK,完成後User class 如下
public class User {  

private String name;
private String sex;
private String age;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}
}

從第3~29行即是GsonFormat產生的內容。

Orignal From: Gson 搭配 Gsonformat 基本使用紀錄

0 意見:

張貼留言

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews