【问题标题】:how to prevent the insertion of extra quotes in the JSONOBject value?如何防止在 JSONOBject 值中插入额外的引号?
【发布时间】:2015-08-18 13:23:56
【问题描述】:
public JSONArray updatedGames() {
    JSONArray ar = new JSONArray();

    try {
        conn = connection.getConnection();
        String query = "CALL websocket_games(2)";
        CallableStatement custStmt = conn.prepareCall(query);
        rs = custStmt.executeQuery();

        while (rs.next()) {
            System.out.println("id "+rs.getString("our_game_id"));
            JsonProvider provider = JsonProvider.provider();
            JsonObject updatemessage = provider.createObjectBuilder()
                    .add("game_id", rs.getString("our_game_id"))
                    .add("date", rs.getString("dat"))
                    .build();
            ar.put(updatemessage);
        }
        if(ar.length()>0){
            System.out.println("provider "+ar.getString(0) );
        }


        rs.close();
        custStmt.close();
        conn.close();
    } catch (Exception e) {
        System.out.println(e);
    }
    System.out.println("number of games " + ar.length());
    return ar;
}

上述函数的输出是{"game_id":"\"8240\"","date":"\"2015-08-18\""}
但是我想要的输出是{"game_id":"8240","date":"2015-08-18"}

如何防止在 JSONOBject 值中插入这些额外的引号?

【问题讨论】:

  • 你被否决了,因为你的问题质量不是很好。我认为您可能需要稍微重构您的问题。请参阅这篇关于好的问题指南的文章。 codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question
  • 是您从 rs.getString("our_game_id") 得到的字符串上已有的额外引号
  • 不,他们不是我独立的系统输出,他们没有引号

标签: java arrays json


【解决方案1】:
    //------please try this instead of your while loop ----------
   JSONArray ar = new JSONArray();
   while (rs.next()){
         System.out.println("id "+rs.getString("our_game_id"));
         JsonObject updatemessage = new JsonObject();
         updatemessage.put("game_id", rs.getString("our_game_id"));
         updatemessage.put("date"   , rs.getString("dat"));
         ar.add(updatemessage);
   }

   if(ar.length()>0){
          System.out.println("provider "+ar.getString(0) );
   }

注意:请检查您的数据库字段值...

【讨论】:

  • 感谢它的魅力。原来 JsonProvider 是我决定在 org.json.JSONObject 中使用 JSONObject 类的问题
【解决方案2】:

您的问题不在您的 Java 代码中。

您的数据库包含已引用值的那些字段,或者您的 websocket_games 存储过程添加了这些引号。

【讨论】:

    猜你喜欢
    • 2015-12-27
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 2021-10-21
    相关资源
    最近更新 更多