java後臺以json字串的形式,將資料返回給$.ajax的問題總結
再利用$.ajax時,向後臺傳送資料,後臺拼接成字串的json返回給前臺頁面接收不到相應的值
後臺程式碼如下:
@RequestMapping("/getPhonesById")
public void getPhonesById(HttpServletRequest request, HttpSession session,HttpServletResponse response) throws IOException{
Long equId = null ;
if(request.getParameter("equId")!=null){
equId = Long.parseLong(request.getParameter("equId")) ;
}
List<RelationCode> rcList = relationCodeService.getAllByEquId(equId) ;
String jsonStr="" ;
for (int i = 0; i < rcList.size(); i++) {
jsonStr += "\"phone"+i+"\""+":"+"\""+rcList.get(i).getrPhone()+"\"," ;
//System.out.println(rcList.get(i).getrPhone());
}
jsonStr = "{"+jsonStr.substring(0, jsonStr.length()-1)+"}" ;
System.out.println(jsonStr);
//String textString = "{\"haha\":\"haha\"}" ;
response.getWriter().write(jsonStr);
//session.setAttribute("rcList", rcList);
//return "redirect:/visitBeadHouse" ;
}
前臺程式碼如下:
<script type="text/javascript">
function getPhones(equId){
alert(equId);
$.ajax({
type :"POST" ,
url : "getPhonesById",
data :{equId:equId},
dataType : "json",
cache : false,
success : function(data){
if(data){
//$("#jb51").attr("href","http://www.jb51.net"));
$("#phone1").val(data.phone0) ;
$("#phone2").val(data.phone1) ;
$("#phone3").val(data.phone2) ;
$("#phone4").val(data.phone3) ;
$("#phone5").val(data.phone4) ;
$("#pop1").attr("href","javascript:;") ;
}
},
error : function(data){
alert(error) ;
}
}) ;
}
總結:後臺在給前臺傳值拼接json字串時,除了整型外,字串型別都應該在拼接過程中加上雙引號,(嘗試單引號拼接還是獲取不到值),前臺之間的json傳值沒影響。