1. 程式人生 > >後臺傳輸JSON或List,前臺對應的解析方法

後臺傳輸JSON或List,前臺對應的解析方法

  • 今天在前臺展示資訊的時候,直接從後臺返回List,list是直接從資料庫取出來的物件集合,前臺用c:forEach迴圈的話正常顯示,程式碼如下:
<ul id="uldiv">
    <c:forEach items='${userList }' var="user">
       <li>使用者名稱:${user.username }----密碼:${user.password }----</li>
    </c:forEach>
</ul>
  • 但是我用JQuery改寫的時候,發現就出錯了,不論是用$.parseJSON(‘$
    {userList}’)轉碼還是用eval( ‘(’ + userList + ‘)’ )都報錯,程式碼如下
<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解析,然後遍歷

  • 以上純屬個人見解,如有不對之處,歡迎大家指正