【发布时间】:2011-02-28 16:26:46
【问题描述】:
我正在尝试用 Java 创建一个 JSON 收件箱对象。
public class GetContacts extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException{
try{
String list = req.getParameter("list");
String profileId = "27";
//Accessing driver from the JAR file
Class.forName ("com.mysql.jdbc.Driver").newInstance();
//Connect to Clockie's database
Connection con = DriverManager.getConnection ("jdbc:mysql://localhost:3306/cdatabase", "root", "root");
//Here we create our query
String sql =
"SELECT * " +
"FROM messages " +
"WHERE profileId = ?";
PreparedStatement statement = con.prepareStatement(sql);
statement.setString(1, profileId);
ResultSet result = statement.executeQuery();
JSONArray messages = new JSONArray();
while(result.next()){
JSONObject message = new JSONObject();
message.put("to", result.getString("to"));
message.put("from", result.getString("from"));
message.put("message", result.getString("message"));
message.put("profileId", profileId);
messages.put(message);
}
System.out.println(messages.toString());
resp.setContentType("text/javascript");
PrintWriter out = resp.getWriter();
String output = req.getParameter("callback") + "(" + messages.toString() + ");";
out.write(output);
out.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
但我收到以下错误消息:
局部变量消息尚未初始化
我做错了什么?
我使用的 JSON 类是 http://www.json.org/java/ 中的原始类
顺便说一句,我使用 Eclipse 作为我的 IDE
好的,我想我找到了问题所在。我添加的 JSON 库在尝试导出 Jar 文件时出错。并且错误出现在 JSONArray 类中。如何在 Eclipse 中将 JSON 库导出到 jar 文件?
这就是我的做法并收到了一些警告(警告在 JSONArray 类中):
Ok created a new project and right click -> export -> choose Jar Files (under java folder) -> marked both .classpath and .project in the right rectangle -> I selected a random destination folder with the filname org.json.jar. When I did this i got some warnings
不要在意问题的位置。我尝试将变量消息变量messagesss 定义为 JSONArray obj。 message 而不是 messagessss,我仍然遇到同样的错误。但是我该如何解决这个问题呢?
java类在一个叫做messages的包下,是这个问题吗?
【问题讨论】:
-
这行不是初始化数组 >JSONArray messages = new JSONArray();
-
@Woh,是的。这就是为什么我认为不应该有问题。你做了干净的构建吗?
-
它是否说明了导致错误消息的行号?
-
我是java新手,但是如果出现这个错误:(java.lang.Error: Unresolved compiler problem: |?The local variable messages may not have been initialized| at messages.GetContacts.doGet(GetContacts .java:43)...) 表示第 43 行,那么正是这一行导致它 JSONObject message = new JSONObject();
-
按照我尝试的方式如何在 cmets 中引用 >