1. 程式人生 > >Java後臺返回複雜資料、大資料給前端解決辦法(返回json資料分類簡化前段操作)

Java後臺返回複雜資料、大資料給前端解決辦法(返回json資料分類簡化前段操作)

背景分析:
面對當前多種的業務需求和雜亂無章的資料堆放,Java後臺處理變得尤為重要。對於資訊系統開發而言,歸根到底是對資料的分類與處理。通過從伺服器獲取資料,客戶給出需求,形成怎樣的表格,多樣化的靜態圖和動態圖,各種各樣資原始檔,這些需求都不是簡單的從資料庫中取出來就可以直接使用的,往往需要進行對應的演算法歸類,類別劃分等。對於複雜的圖示,藉助開源的前段框架或者相應的畫圖外掛即可完成,只需要直接呼叫即可。
**問題匯入:**藉助CSDN為例子進行知識探討,僅進行學習與技術探討,如有侵權,請及時聯絡 QQ郵箱:[email protected]
在這裡插入圖片描述
通過簡單的分析,上述網頁的1,2,3這三個部分肯定不是來源於一個數據庫,他們的格式,資料長短也大相徑庭。但是它們有一個相同點,需要同時獲取資料到本頁面

。從後臺角度而言,用最簡單的方式解決就是它們具有相同的介面,通過網址連結請求,再從伺服器資料庫中獲取相應的資料,進行處理,整合在一個json或者其它傳遞格式返回到當前頁面中來。
後臺具體思路:
1.依據需求和介面文件,從資料庫獲取原資料在後臺儲存起來。其中需要用到
①從伺服器獲取json資料
②json資料與String,ArrayList等資料格式之間的轉換
2.分析需求,將資料轉存為hashmap或者arraylist方便一起傳輸。其中注意需要進行演算法處理時,對下標,對應名稱要仔細檢查。
3.組合為一個字串或者其它格式傳遞給前端。(每一個模組應有對應的名稱,前端好直接獲取處理)
程式碼例項:

1.從資料庫連線路徑獲取資料(實測有用乾貨)

/**
	 * json資料轉為字串
	 * @param url1  獲取json資料的URL地址
	 * @return messageString String型別的json字串
	 */
	public String getHttpResult(String url1) {
		String messageString = null;
		try {
			URL url = new URL(url1);
			// 開啟連線
			HttpURLConnection urlConnection = (HttpURLConnection) url
					.openConnection();
			System.out.println(urlConnection);
			urlConnection.setConnectTimeout(8000);//連線超時
			urlConnection.setReadTimeout(8000);//讀操作超時
			
			if (200 == urlConnection.getResponseCode()) {
				// 得到輸入流
				InputStream is = urlConnection.getInputStream();
				ByteArrayOutputStream baos = new ByteArrayOutputStream();
				byte[] buffer = new byte[1024];
				int len = 0;
				while (-1 != (len = is.read(buffer))) {
					baos.write(buffer, 0, len);
					baos.flush();
				}
				// baos.toString("utf-8");
				//System.out.println("獲取資料" + baos.toString("utf-8"));
				messageString = baos.toString("utf-8");
				baos.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

		return messageString;

	}

2.傳遞引數儲存框架搭建
分析:對於要傳遞四個模組的資料使用map儲存方式用K,V將每一個內容和模組對應。

 //總倉庫
static HashMap<String, Map<Integer,Map<String, String>>>result = new HashMap<String,  Map<Integer,Map<String, String>>>();
//分倉庫
Map<Integer,Map<String, String>> TMmap = new LinkedHashMap<Integer,Map<String, String>>();
//倉庫子內容
Map<String, String> TMmap1 = new LinkedHashMap<String, String>();

3.對封裝好的資料進行型別轉換進行傳輸(靈活使用gson)

//其中BaseResponse類需要自己建立,依據需求設定類屬性
BaseResponse<HashMap<String, Map<Integer,Map<String, String>>>> mes = new BaseResponse<HashMap<String,Map<Integer,Map<String, String>>>>();
mes.setCode(1);
mes.setData(result);
mes.setMsg("ok");
     
Gson gson = new Gson();
String json = gson.toJson(mes);
return json;

4.介面測試,資料如果有差異,進行適當修改即可。