java - 如何在ajax中使用json数组? (java)

标签 java jquery json ajax servlets

我有一个 servlet,它返回 json 数据,例如:

{"type1":"value1","type2":"value2"}{"type1":"value3","type2":"value4"}

然后我想使用 ajax 获取这些数据来在 html 中绘制表格:

function showTable() {

    $.ajax('../json', {
        method: 'GET',
        success: function (users) {
            var result = "<tr>" +
                "<th>type1</th>" +
                "<th>type2</th>" +
                "</tr>";
                for (var i = 0; i < users.length; i++) {
                result += "<tr>" +
                    "<td>"+users[i].type1+"</td>" +
                    "<td>"+users[i].type2+"</td>" +
                    "</tr>";
            }
            var table = document.getElementById("showtable");
            table.innerHTML(result);
        }
    });
}

但是什么也没发生。

Servlet:

public class JsonController extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/json");
        PrintWriter writer = new PrintWriter(resp.getOutputStream());
        for (Object j : DBController.getController().getUsersInJSON()) {
            writer.append(j.toString());
            writer.flush();
        }
    }

这就是getUsersInJson()好像。它从一些 ArrayList<User> 获取数据数组并返回 JSONArray :

public JSONArray getUsersInJSON() {
        JSONArray array = new JSONArray();
        for (User user : DBController.getController().get()) {
            JSONObject jUser = new JSONObject();
            jUser.put("name", user.getName());
            jUser.put("login", user.getLogin());
            jUser.put("email", user.getEmail());
            jUser.put("role", user.getRole().getName());
            jUser.put("country", user.getCountry());
            jUser.put("city", user.getCity());
            array.put(jUser);
        }
        return array;
    }

出问题了吗?

最佳答案

您做错了,您已将变量包含在引号中,因此值不会被替换。这样做:

$.ajax('../json', {
        method: 'GET',
        success: function (users) {
            var result = "<tr>" +
                "<th>type1</th>" +
                "<th>type2</th>" +
                "</tr>";
                for (var i = 0; i < users.length; i++) {
                result += "<tr>" +
                    "<td>"+users[i].type1+"</td>" +
                    "<td>"+users[i].type2+"</td>" +
                    "</tr>";
            }
            var table = document.getElementById("showtable");
            table.innerHTML(result);
        }
    });

关于java - 如何在ajax中使用json数组? (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45304959/

相关文章:

javascript - 如何停止javascript onclick事件

Javascript:firstChild对象返回未定义

java - 填充复杂的 Map 并访问其值

java - Spring 启动JPA : Use library to Bulk load data for MySQL

java - 通过Android手机发送和接收字符串

javascript - 我用完了 JavaScript 中可用的引号符号!

JavaScript JSON : Sum two or more json having only numeric values with same keys

javascript - 从 JSON 获取对象

ruby-on-rails - 使用 Rails 将外部 JSON 保存到数据库

java - 我想将 Timer 内的 TimerThread 放入 ThreadGroup 中