得到"未定义"当我用js打印json数组

时间:2014-11-12 09:20:47

标签: javascript jquery json jsp

我想解析它从json.jsp下来的json数组,但是当我访问parse.js时它会显示undefined 这是parse.js

$(document).ready(function() {
            $('#login').click(function(event) {
                $.get('json.jsp', {
                }, function(responseText) {
                    var myJSONObject1 = responseText;
                    var myJSONObject = JSON.parse(myJSONObject1);
                    var len = myJSONObject.length;
                    var out = "";
                    for (var i = 0;  i < len; i++) {
                         var student = myJSONObject[i];
                         out += "<li>"+student.ircEvent + "<li>" + student.method+"<li>"+student.regex;
                     }
                    document.getElementById("ajaxResponse").innerHTML = out;
                });
            });
        });

我的json.jsp是,

<%
        response.setContentType("plain/text");
        User user = new User("RAM","ram@gmail.com");
        User user1 = new User("Ravi","ravi@gmail.com");
        User user2 = new User("Raghu","raghu@gmail.com");
        List list = new ArrayList();
        list.add(user);list.add(user1);list.add(user2);
        String json = new Gson().toJson(list);
        response.getWriter().write(json);       
    %>

当我访问parse.js文件时,它会显示undefined

任何想法......

1 个答案:

答案 0 :(得分:1)

只需使用$ .ajax并将dataType设置为json即可。不需要解析任何东西。 jQuery为你做到了。 http://api.jquery.com/jquery.ajax/

jQuery(document).ready(function($) {
    $.ajax({
        url: 'json.jsp',
        type: 'get',
        dataType: 'json',
        success: function(data) {
            if (data.length) {
                var ajaxResponse = document.createElement('table'),
                        tbody = document.createElement('tbody');
                for (var i in data) {
                    if (data.hasOwnProperty(i)) {
                        var tr = document.createElement('tr'),
                                key = document.createElement('td'),
                                    keyText = document.createTextNode(i),
                                value = document.createElement('td'),
                                    valueText =  document.createTextNode(data[i]);
                                key.appendChild(keyText);
                            tr.appendChild(key);
                                value.appendChild(valueText);
                            tr.appendChild(value);
                        tbody.appendChild(tr);
                    }
                }
                ajaxResponse.appendChild(tbody);
                $("#ajaxResponse").append(ajaxResponse);
            }
            else alert("No data returned!");
        }
    });
});