后台:
@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)來執行。