从json数组中检索数据

时间:2013-10-22 08:32:05

标签: javascript jquery json

我在从JSON检索数据时遇到了困难。当我单击按钮时,它将触发调用函数,调用函数将调用json.jsp文件以从数组中检索数据。现在我无法检索数据。这是我的JavaScript文件;

var callback;
function call(uid, pw) {
    callback = true;
    $.getJSON("json.jsp" + "?uid=" + uid + "&rdm=" + Math.random(), function (data) {
        $.each(data.menulist, function (key, val) {
            $("#cont").append("<div>" + val + "</div>");
        });
        callback = false;
    });
}

以下是我的jsp文件;

String uid=request.getParameter("uid")==null?"xxx":request.getParameter("uid");

if (uid.equalsIgnoreCase("admin")){  
  {"menulist":[{"menu":"menu1"},{"menu":"menu2"},{"menu":"menu3"}]}   
} else if (uid.equalsIgnoreCase("user")){   
   {"menulist":[{"menu":"menu1"},{"menu":"menu2"}]}
} else {   
  {"menu":"Menu"}
}

2 个答案:

答案 0 :(得分:1)

最后我得到了这样的话;

$("#cont").append("<div>" + data.menulist[i].menu + "</div>");

答案 1 :(得分:0)

首先,您的JSP代码看起来不正确。您应该使用&lt; %%&gt;附上JSP scriptlet。如下:

<%String uid=request.getParameter("uid")==null?"xxx":request.getParameter("uid");

if (uid.equalsIgnoreCase("admin")){  %>
    {"menulist":[{"menu":"menu1"},{"menu":"menu2"},{"menu":"menu3"}]}   
<%} else if (uid.equalsIgnoreCase("user")){   %>
    {"menulist":[{"menu":"menu1"},{"menu":"menu2"}]}
<%} else {   %>
    {"menu":"Menu"}
<%}%>

您是否尝试直接访问URL并检查JSP是否输出了正确的JSON内容。

http://localhost:8080/yourapp/json.jsp?uid=admin&rdm=1