我的经验是使用杰克逊库(http://jackson.codehaus.org/),你创建一个POJO来映射json格式。所以一旦你从你的配置单元查询中得到了ResultSet,你就可以迭代它并使用Jackson创建POJO的对象。
/**--JACKSON Class--**/
public class Item {
@JsonProperty
private String att1;
@JsonProperty
private String att2;
public Item(String att1, String att2){
this.att1 = att1;
this.att2 = att2;
}
}
/**--the class where u run your query--**/
List list = new ArrayList();
ResultSet rs = executeQuery(queryStr); // do your hive query here
while(rs.next){
String att1 = rs.get("att1");
String att2 = rs.get("att2");
Item item = new Item(att1, att2);
list.add(item);
}
然后您可以返回项目列表作为结果,杰克逊允许您非常容易地以json格式编写它。
创建一个ObjectMapper ObjectMapper mapper = new ObjectMapper();映射器为您提供了很多选项,可以将json格式的对象写入不同的目标。例如。输出流,字节缓冲等。
遍历列表。
使用映射器以json格式写入值,例如。 mapper.writeValue(out,Item)。在这个例子中,out是一个OutputStream。