後臺傳輸JSON或List,前臺對應的解析方法
阿新 • • 發佈:2018-12-31
- 今天在前臺展示資訊的時候,直接從後臺返回List,list是直接從資料庫取出來的物件集合,前臺用c:forEach迴圈的話正常顯示,程式碼如下:
<ul id="uldiv">
<c:forEach items='${userList }' var="user">
<li>使用者名稱:${user.username }----密碼:${user.password }----</li>
</c:forEach>
</ul>
- 但是我用JQuery改寫的時候,發現就出錯了,不論是用$.parseJSON(‘$
<ul id="uldiv">
</ul>
<script type="text/javascript" src="${pageContext.request.contextPath }/webjarslocator/jquery/jquery.js"></script>
<script type="application/javascript">
var userList = $.parseJSON('${userList}' );
for( var i in userList ){--%>
$("#uldiv").append("<li>使用者名稱:" + userList[i].username + "----密碼:" + userList[i].password + "----</li>");
}
</script>
後來發現,在後臺用JSONArray.toJSON()把返回結果轉換成json,前臺用JQuery來解析就可以了,就是上面第二種方法,好像JQuery內的引數只解析json格式
第一種c:forEach的話,裡面的引數items只解析List集合,不能解析json,將返回值json用c:forEach遍歷的話,也會報錯
綜上所述:後臺傳值,前臺解析的話,兩種方式:
第一種:後臺直接返回List集合,直接從資料庫中取出來的集合,裡面封裝了物件,前臺用c:forEach items=’${userList }’ var=”user”來遍歷
第二種:後臺結果返回之前,用JSONArray.toJSON()將結果轉換成JSON格式,前臺用JQuery的$.parseJSON解析,然後遍歷
以上純屬個人見解,如有不對之處,歡迎大家指正