2017-01-30 56 views
0

我檢索使用SQL查詢表中的數據和我:如何獲取json數組值的格式?

[["Abhijith","FAZT LORRY"]] 

但我想作爲一個JSONArray。請幫幫我。

我的服務類是:

public List<Projectemployeeallocation> findAllAllocations() 
              throws JsonProcessingException { 

    Session session = sessionFactory.openSession(); 

    String sql="SELECT emp.EFirstname,pro.ProjectName FROM 
       t_employeemaster emp JOIN t_projectemployeeallocation proall ON 
       emp.EmployeeAutoID=proall.EmployeeID JOIN t_projectmaster pro ON 
       proall.ProjectID=pro.ProjectID"; 

    Query query = session.createSQLQuery(sql); 
    //query.setParameter("username", uname); 
    List list = query.list(); 

    return list; 
} 
+0

使用GSON庫這一點。 String json = new Gson()。toJson(list); – gifpif

+3

可能的重複[如何將列表轉換爲Json在Java](http://stackoverflow.com/questions/14228912/how-to-convert-list-to-json-in-java) – walen

+0

搜索如何解析一個字符串成Java中的Json。你有很多的API和足夠的教程來幫助你在互聯網上 – AxelH

回答

0

你可以使用jackson這是在Java中的JSON功能強大的庫。

List<String> list = new ArrayList<>(); 
try { 
    String result = new ObjectMapper().writerFor(new TypeReference<List<String>>(){}).writeValueAsString(list); 
} catch (JsonProcessingException e) { 
    e.printStackTrace(); 
} 
0

當你的查詢返回多列,query.list()將返回與每個對象[]包含指定的列數據的List<Object[]>由DB返回的每一行。

由於您的查詢似乎返回結果只有一個,你可以返回list.get(0),然後使用任何JSON庫將其轉換成jsonArray如GSON,傑克遜等