Java 如何将这些servlet数据创建为json格式我试过这个

Java 如何将这些servlet数据创建为json格式我试过这个,java,json,servlets,Java,Json,Servlets,这是我的servlet,我成功地从数据库中读取数据并在浏览器中显示,但我想以json格式显示这些数据,有人能告诉我吗 package com.file; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; imp

这是我的servlet,我成功地从数据库中读取数据并在浏览器中显示,但我想以json格式显示这些数据,有人能告诉我吗

package com.file;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GetDataTable extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setContentType("application/json");
PrintWriter pw = res.getWriter();
Connection con;
Statement stmt;
ResultSet rs;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:java","java","java");
stmt = con.createStatement();
rs = stmt.executeQuery("Select * from SERIESCHART");

pw.println("DATA "+ "VALUE" + "<br>");
while(rs.next())
{
pw.println(rs.getString(1)+" "+rs.getString(2) + "<br>");
}
}
catch (Exception e){
pw.println(e);
}
}
}
package.com文件;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.Statement;
导入javax.servlet.ServletException;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
公共类GetDataTable扩展了HttpServlet{
公共无效数据集(HttpServletRequest-req、HttpServletResponse-res)
抛出ServletException、IOException
{
res.setContentType(“应用程序/json”);
PrintWriter pw=res.getWriter();
连接con;
报表stmt;
结果集rs;
试一试{
类forName(“oracle.jdbc.driver.OracleDriver”);
con=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:java”、“java”、“java”);
stmt=con.createStatement();
rs=stmt.executeQuery(“从序列图中选择*);
pw.println(“数据“+”值“+”
”); while(rs.next()) { pw.println(rs.getString(1)+“”+rs.getString(2)+“
”; } } 捕获(例外e){ pw.println(e); } } }
您可以使用

示例代码

      import org.json.simple.JSONObject;
      JSONObject obj = new JSONObject();

      obj.put("name", "foo");
      obj.put("num",rs.getInt(1));
      obj.put("balance", rs.getString(2));
      obj.put("is_vip", rs.getString(3));

      System.out.print(obj);

您可以这样做:

...
JsonWriter writer = new JsonWriter(new OutputStreamWriter(res.getOutputStream(), "UTF-8"));
writer.beginArray();
while(rs.next())
{
writer.beginObject();
writer.name("DATA").value(rs.getString(1));
writer.name("VALUE").value(rs.getString(2));
writer.endObject();
}
writer.endArray();
writer.close();
....

这将从db中获取结果,并将json表示放入Response outputstream中,这里是obj.put(“name”,“foo”);对象put(“num”,新整数(100));obj.put(“余额”,新的双倍(1000.21));对象put(“is_vip”,新布尔值(true));传递静态数据。但我已经从数据库中动态地获取了数据。所以,我想将db数据传递到json文件中。就我个人而言,我很喜欢,它有额外的重量,需要一个类定义来序列化,但我不介意额外的键入/类。你可以找到很多教程和文档检查这一点,你想导出json,但看起来你正在编写HTMLno我不想让这些json数据进入extjs网格。在这里,我连接db并只获取数据。但是我如何将这些数据转换成json,然后如何将这些数据转换成ExtJS,当我输入这些代码时,输出数据将希望存储系统的某个位置。但实际上,我想把这些数据放在extjs图表中,因为您可以看到
JsonWriter
是由响应输出流创建的。你可以把它改成你最喜欢的