我在数据库中有一个表testemployee
,其中包含三列eid,ename,esalary
。我想在json对象中显示表的所有行(稍后我想使用 kendo UI 网格给 json obj 一个 html View )我使用 arraylist 来存储所有数据行,然后将列表转换为 json。但是当我运行该文件时,它显示 HTTP 状态 405 - HTTP 方法 GET 不受支持这个网址
下面是我的代码
package com.JSONoflist;
import com.google.gson.Gson;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;
@WebServlet(urlPatterns = {"/list2json"})
public class list2json extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Statement stmt = null;
ResultSet rs = null;
dbconn Obj = new dbconn();
Connection connection = Obj.Open();
try {
String qry = "SELECT * FROM testemployee";
stmt = connection.createStatement();
rs = stmt.executeQuery(qry);
JSONObject jObj = new JSONObject();
ArrayList<Employee> list = new ArrayList<Employee>();
Employee sPojo = null;
while (rs.next()) {
sPojo = new Employee();
sPojo.setId(rs.getString("eid"));
sPojo.setEname(rs.getString("ename"));
sPojo.setSalary(rs.getString("esalary"));
list.add(sPojo);
}
// String json = new Gson().toJson(list);
System.out.println(list);
jObj.put("testemployee", list);
System.out.println(jObj.toString());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
我也尝试过在 Arraylist 中使用静态值,但出现 http 错误。我是否遗漏了什么?请帮助我。由于这个错误,我什至无法检查 json 是否在 url 中显示数据库值。
@WebServlet(urlPatterns = {"/list2json"})
public class list2json extends HttpServlet
{
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
List<String> foo = new ArrayList<String>();
foo.add("A");
foo.add("B");
foo.add("C");
String json = new Gson().toJson(foo);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
最佳答案
只需将您的 servlet 代码重写为
@WebServlet(urlPatterns = {"/list2json"})
public class list2json extends HttpServlet
{
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
List<String> foo = new ArrayList<String>();
foo.add("A");
foo.add("B");
foo.add("C");
String json = new Gson().toJson(foo);
} catch (Exception ex) {
ex.printStackTrace();
}
}
关于java - 将 ArrayList 转换为 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31447025/