JSON物件的封裝與解析
阿新 • • 發佈:2018-12-30
String name = tableObj.get("tableName").toString(); //獲得表名
JSONArray columnInfo = tableObj.getJSONArray("columnInfo"); //獲得欄位描述json陣列
int size = columnInfo.length(); //json陣列長度
for(int i=0;i<size;i++){
JSONObject info=columnInfo.getJSONObject(i);
String cloumn = info.getString("columnName"); //獲取欄位名
String dataType = info.getString("dataTypeName"); //獲取欄位型別
boolean isKey = info.getBoolean("isKey"); //獲取欄位是否為主鍵
boolean isAutoIncrement = info.getBoolean("isAutoIncrement"); //獲取欄位是否自增
int isNull = info.getInt("isNull"); //獲取欄位是否為空
int precision = info.getInt("precision"); //獲取欄位型別精度
String defaultValue = info.getString("defaultValue"); //獲取欄位預設值
}
二、封裝json物件
/**
* 根據表名獲取表結構資訊
* @param tableName 表名
* @return 表結構資訊物件 Json格式
* {
* "tableName":"t_res", //表名稱
* "columnInfo":[ //欄位資訊
* {
* "columnName":"id", //欄位名
* "dataTypeName":"varchar", //欄位型別
* "isKey":true, //是否為主鍵,true代表是主鍵,false代表不是
* "isAutoIncrement":true, //是否自增,true代表自增,false代表不自增
* "isNull":0, //是否為空,1代表可以為空,0代表不能為空
* "precision":5, //精度
* "defaultValue":"10" //預設值
* "scale":2 //小數位數
* }
* ]
* }
*/
JSONObject tableInfoObj = new JSONObject();
StringBuffer sb = new StringBuffer();
sb.append("{"+"'tableName':"+tableName+","+"'columnInfo':"+"[");
sb.append("{"+"'columnName':"+"'"+cloumn+"'"+","
+"'dataTypeName':"+"'"+dataType+"'"+","
+"'isKey':"+isKey+","
+"'precision':"+precision+","
+"'defaultValue':"+"'"+defaultValue+"'"+","
+"'isNull':"+isNull+","
+"'isAutoIncrement':"+autoIncrement+","
+"'scale':"+scale+"}"+",");
sb.deleteCharAt(sb.length()-1);
sb.append("]");
sb.append("}"); //json字串到此完成
System.out.println(sb.toString());
tableInfoObj = new JSONObject(sb.toString()); //將json字串轉化為jsonObject物件
return tableInfoObj;