TableTypeAdapterFactory
Posted by Bruce Tsai
說明
以 Gson 處理 Table 元件的 json 序列化。
範例
DataSource dataSource =
DataSources.unpooledDataSource(url, account, password);
dataSource = DataSources.pooledDataSource(dataSource);
Connection connection = dataSource.getConnection();
PreparedStatement stmt =
connection.prepareStatement("select id, name from Company");
ResultSet resultSet = stmt.executeQuery();
Table table = new Table();
table.fill(resultSet);
// 加入計算欄
table.addColumn(new ComputedColumn<CharSequence>("公司名") {
@Override
public CharSequence compute(TableRow row) {
return String.format("公司名稱為: %s", row.cell("name"));
}
});
table.close();
stmt.close();
// Gson 序列化設定
Gson gson = new GsonBuilder()
.setPrettyPrinting()
.registerTypeAdapterFactory(new TableTypeAdapterFactory())
.create();
System.out.println(gson.toJson(table));
輸出結果
[
{
"ID": "10065309",
"Name": "鎮遠水電工程有限公司",
"公司名": "公司名稱為: 鎮遠水電工程有限公司"
},
{
"ID": "10066044",
"Name": "班尼頓一級方程式股份有限公司",
"公司名": "公司名稱為: 班尼頓一級方程式股份有限公司"
},
{
"ID": "10066127",
"Name": "國立中山大學南區促進產業發展研究中心",
"公司名": "公司名稱為: 國立中山大學南區促進產業發展研究中心"
},
{
"ID": "10066140",
"Name": "明惠貿易股份有限公司",
"公司名": "公司名稱為: 明惠貿易股份有限公司"
},
{
"ID": "10066438",
"Name": "吉紡纖維有限公司",
"公司名": "公司名稱為: 吉紡纖維有限公司"
}
]