ORMLite返回的JSON顺序?

时间:2015-05-29 21:26:18

标签: sql oracle ormlite

我是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]

但我只在本地测试了这个,并且在文档中找不到什么决定了返回的数组中变量的顺序。

2 个答案:

答案 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]);
    }