假設有如圖4.37所示的輸入頁面,該頁面中包含了三個表單域,這三個表單域對應于三個請求參數,是以應該使用Action來封裝這三個請求參數。三個表單域的name分别為field1、field2和field3。
處理該請求的Action類代碼如下。
<a href="http://blog.51cto.com/attachment/201206/093529853.jpg" target="_blank"></a>
public class JSONExample
{
//模拟處理結果的屬性
private int[] ints = {10, 20};
private Map<String , String> map
= new HashMap<String , String>();
private String customName = "顧客";
//封裝請求參數的三個屬性
private String field1;
//'transient'修飾的屬性不會被序列化
private transient String field2;
//沒有setter和getter方法的字段不會被序列化
private String field3;
public String execute()
{
map.put("name", "瘋狂Java講義");
return Action.SUCCESS;
}
//使用注釋文法來改變該屬性序列化後的屬性名
@JSON(name="newName")
public Map getMap()
return this.map;
//customName屬性的setter和getter方法
public void setCustomName(String customName)
this.customName = customName;
public String getCustomName()
return this.customName;
//省略了field1、field2、field3三個屬性的setter、getter方法
...
}
在上面的代碼中,使用了JSON注釋,注釋時指定了name屬性,name屬性用于改變JSON對象的屬性名字。除此之外,JSON注釋還支援如下幾個屬性。
Ø serialize:設定是否序列化該屬性。
Ø deserialize:設定是否反序列化該屬性。
Ø format:設定用于格式化輸出、解析日期表單域的格式。例如"yyyy-MM-dd'T'HH: mm:ss"。
本文轉自
fkJava李剛 51CTO部落格,原文連結:http://blog.51cto.com/javaligang/896951 ,如需轉載請自行聯系原作者