項目中會常常用到實體的字體與數據庫對應字段的一種轉換,能夠利用fastjson進行字段映射,達到相互轉化的效果,或者是同步數據的時候也須要作相應的轉換,下面介紹下在項目中真實應用的場景:java
需求是:同步數據甲方要求同步的數據爲:數據庫
{json
"yy_id": "0",
"yy_create_user_id": "bjtoon_312672",
"yy_create_user_name": "0",
"yy_create_time": "2017-01-06 15:41:26"字體
}spa
而我方所對應字段是一個實體對象code
yyId,對象
yyCreateUserId,get
yyCreateUserName,同步
yyCreateTimeio
那麼怎麼可以實現這種轉換呢
利用fastjson的註解來作,能夠定義一個Vo對象來實現輕鬆轉換
第一種:註解
public class TestVo implements Serializable { private static final long serialVersionUID = 1L; @JSONField(name = "yy_id") private String yyId; @JSONField(name = "yy_create_user_id") private String yyCreateUserId; @JSONField(name = "yy_create_user_name") private String yyCreateUserName; @JSONField(name = "yy_create_time") private Date yyCreateTime; //省略set get方法 }
能夠使用json序列化進行轉化
String json = " { "yy_id": "0", "yy_create_user_id": "bjtoon_312672", "yy_create_user_name": "0", "yy_create_time": "2017-01-01 15:41:26" } "; TestVo testVo = JSON.parseObject(json,TestVo .class);
經過這種轉換就能獲得實體對象。
第二種:
String json = JSON.toJSONString(TestVo);
序列化後的json如上所示:{"yy_id": "0","yy_create_user_id": "bjtoon_312672","yy_create_user_name": "0","yy_create_time": "2017-01-01 15:41:26"}
這樣就能達到相互轉換進行數據入庫。