后台:
@RequestMapping("/dictList")
@ResponseBody
public Map<String, Object> positionList() {
Map<String, Object> params = new HashMap<String, Object>();
List<SysDictBean> status = sysDictService.findByType("foreign_status"); //查詢系統參數的貨幣對
List<SysDictBean> side = sysDictService.findByType("side_type"); //查詢交易類型
params.put("status", status);
params.put("side", side);
return params;
}
js:
function getDict(){ $.ajax({ type: "POST", url:'/dictList', data:{}, async: false, success: function(data) { var json = eval("(" + JSON.stringify(data) + ")"); //也可以這樣寫:var json = JSON.parse(JSON.stringify(data)); // dictSide = JSON.stringify(json.side); // //console.log(dictSide) // for (var t = 0; t < json.side.length; t++) { // if (json.side[t].value == 1) { // var aa = json.side[t].name; // alert(aa) // } // } dictSide = json.side; dictStatus = json.status; } }); }
eval()把對應的字符串解析成JS代碼並運行。
為什么eval("("+data+")")函數內部要添加括號呢
由於json是以{}的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。
加上圓括號的目的是迫使eval函數在處理JavaScript代碼的時候強制將括號內的表達式(expression)轉化為對象,而不是作為語句(statement)來執行。
