2012-10-23 49 views
25

我找不到在Gson序列化過程中添加自定義字段的簡單方法,我希望有人能夠提供幫助。Gson在序列化過程中添加字段

下面是一個示例類,以顯示我的問題:

public class A { 
    String id; 
    String name; 
    ... 
} 

當我序列化類AI想返回類似:

{ "id":"123", "name":"John Doe", "url_to_user":"http://www.example.com/123" } 

其中url_to_user沒有存儲在我的類的實例A,但可以使用A級實例中的數據生成。

是否有一種簡單的方法可以做到這一點?我寧願避免編寫一個完整的序列化器來添加一個字段。

回答

44

使用Gson.toJsonTree得到一個JsonElement,你可以動態地進行交互。

A a = getYourAInstanceHere(); 
Gson gson = new Gson(); 
JsonElement jsonElement = gson.toJsonTree(a); 
jsonElement.getAsJsonObject().addProperty("url_to_user", url); 
return gson.toJson(jsonElement); 
+0

謝謝。足夠簡單,併爲我所做的工作。 – joncalhoun

+0

簡單...希望能有一個更簡單的方法,例如對象上的方法... – Armand