我在这里遇到一个奇怪的情况。我正在创建一个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的人经历过类似的事情,或者可能知道这里出了什么问题。 请让我知道是否省略了解决此问题所需的任何内容。
谢谢!