我是Web服务的新手,并尝试使用ORMLite查询某些表,但它不支持连接语句,所以我使用原始查询。我想知道是否有办法指定如何返回JSON。我现在拥有的是:
Dao<CodesModel,String> CodesDao = DaoManager.createDao(connectionSource, CodesModel.class);
GenericRawResults<String[]> rawResults =
CodesDao.queryRaw(
"select r.CodeA, s.SubCodeA, r.CodeB, s.SubCodeB " +
"from CodesTable r JOIN SubCodesTable s ON s.CodeA = r.CodeA " +
"where SubCodeB = '" + b_sub + "' AND r.CodeB = '" + b_code + "'");
结果以String []的形式返回,并且似乎总是按
的顺序[CodeA,SubCodeA,CodeB,SubCodeB]
但我只在本地测试了这个,并且在文档中找不到什么决定了返回的数组中变量的顺序。
答案 0 :(得分:0)
结果以这种方式排序,因为这是您在select语句中指定它们的顺序。如果您希望以不同的方式排序结果,请在查询中重新排序。
答案 1 :(得分:0)
如果有人在使用&#34时想要了解列名的方法,请选择*&#34;你也可以使用&#34; getColumnNames()&#34;在rawResults对象上,它们将始终按结果的顺序排列。实例
//The result is returned as a GenericRawResults object
List<String[]> results = rawResults.getResults();
String[] columns = rawResults.getColumnNames();
JSONObject obj = new JSONObject();
if(results.size()>0)
{
obj.put(columns[0], results.get(0)[0]);
obj.put(columns[1], results.get(0)[1]);
obj.put(columns[2], results.get(0)[2]);
obj.put(columns[3], results.get(0)[3]);
}