【问题标题】:An inbox JSON object cannot be initialized?收件箱 JSON 对象无法初始化?
【发布时间】: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 中引用 >

标签: java json


【解决方案1】:

如果 clean+build 无法帮助尝试刷新您的项目或重新启动您的 IDE。我将这段代码复制到我的 Eclipse 中,没有任何问题。

【讨论】:

  • 如何刷新我的项目以及如何清理构建?我正在使用 Eclipse 顺便说一句。他们自动构建?
  • 我认为你还有另一个问题:多个变量同名。检查问题 cmets。
  • 我认为这不是问题所在。至少在我看来,没有更多的变量叫做messages
  • 不管问题的位置。我尝试将变量 messages 变量 messagesss 定义为 JSONArray obj。 message 不是 messagesss 我仍然遇到同样的错误,所以我认为你是对的,它没有刷新。但是我该如何纠正这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
  • 2013-09-02
  • 2010-09-27
  • 2013-06-27
  • 2021-12-19
相关资源
最近更新 更多