java - 将 ArrayList 转换为 json 对象

标签 java json arraylist

我在数据库中有一个表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/

相关文章:

java getBytes 错误

java - 如何从 native 模块触发事件

json - 我正在尝试使用 ARM 模板部署 Azure SQL VM。我收到错误,因为模板引用 'ion5eddb999' 不明确

java - 如何将 Json 数组存储到 Java ArrayList 中?

java - 如何将单个 ArrayList<CustomObj> 元素传递给另一个 Activity

java - 遍历一组字符串并打印一个,然后调用该方法并打印下一个

java - 与 IntelliJ 错误的基本 Maven 集成

php - 带有 JSON、AJAX 和 PHP 的数据表不显示任何数据

ios - 在 badoo/Chatto 聊天文本上填充 api 数据时无法访问 alamofire 请求范围之外的模型对象数据

java - 在扑克中随机发 5 张牌