无法获取JSP表单以读取返回的JSON数组

时间:2019-01-07 16:40:36

标签: jquery arrays json jsp

我在这里遇到一个奇怪的情况。我正在创建一个JSP,它将为我的自动完成功能返回有效的JSON数据。我已经在Perl中工作了大约5年,但是我们希望转向Java / JSP解决方案。一个Java开发人员正在帮助我,我们得到了返回有效JSON的代码,就像原始的CGI脚本一样。

我将在此处添加代码。对我来说,一个奇怪的事情是必须对SQL语句中的引号中的列进行别名化,以使其在适当的情况下返回键值对,但这确实可以返回数组。 >

基本上是这样的: SQL语句:

String query = (String)request.getParameter("term");
if (term.matches("^[\\d\\-\\.]+$")== false) {
query = query.toUpperCase();
}
else {
query = query; 
}
String queryy=("SELECT zip \"zip\", STATEABR \"abbrev\", trim(CITY) \"value\" 
                FROM ZIPCODETBL where "+db_col_to_query+" like '"+query+"%' ORDER BY CITY,
                STATEABR, ZIP ASC");

然后它有一个Gson对象,该代码如下:

    List<Map<String, Object>> listOfMaps = null;
    try {
        QueryRunner queryRunner = new QueryRunner();
        listOfMaps = queryRunner.query(connection, queryy, new MapListHandler());
    } catch (SQLException se) {
        throw new RuntimeException("Couldn't query the database.", se);
    } finally {
        DbUtils.closeQuietly(connection);
    }
    String jsonstr =new Gson().toJson(listOfMaps);
    out.print("json rev str:"+jsonstr);

有效的JSON在Google Chrome控制台中返回

例如

json rev str:[{"zip":"48823","abbrev":"MI","value":"EAST LANSING"},
              {"zip":"48825","abbrev":"MI","value":"EAST LANSING"},
              {"zip":"48826","abbrev":"MI","value":"EAST LANSING"}
             ]

当我在JSP表单字段中输入城市名称时,甚至会发生这种情况。因此,它似乎确实在正确地命中数据库,只是没有通过自动完成机制在现场返回。 我将JQuery用于Perl CGI和此JSP。我不确定这不是jQuery问题,但我认为不是。 我希望来自StackOverflow的人经历过类似的事情,或者可能知道这里出了什么问题。 请让我知道是否省略了解决此问题所需的任何内容。

谢谢!

0 个答案:

没有答案