2015-09-09 5 views
0

Я могу вернуть один объект в json-формат из метода returnMachineTable. Но когда я пытаюсь вернуть все объекты из таблицы производителя. Я не могу вернуть его в формате json. Какие-либо предложения?Возврат формата JSON в ошибке веб-службы

@Path("/test") 
public class testWS { 
// private static final String api_version = "00.01.00"; 

@GET 
@Path("/database") 
// @Produces(MediaType.TEXT_PLAIN) 
@Produces(MediaType.APPLICATION_JSON) 
public Machine returnMachineTable() throws Exception { 
    // public String returnDatabaseStatus() throws Exception{ 

    PreparedStatement query = null; 
    String myString = ""; 
    String returnString = null; 
    Connection conn = null; 
    Machine u = null; 
    // returnString = "<p>data base context: "+"shit ass"+"</p>"; 

    try { 
     conn = db.DBConn().getConnection(); 
     query = conn.prepareStatement("SELECT * FROM MACHINE"); 
     ResultSet rs = query.executeQuery(); 

     while (rs.next()) { 
      myString = myString + rs.getString("LOCATION") + "!!!!!" 
        + rs.getInt("MACHINEID") + "!!!!!" 
        + rs.getInt("MACHINEID"); 

      Long maintainenceDate = rs.getDate("MAINTDATE").getTime(); 
      Long dateInstalled = rs.getDate("DATEINSTALLED").getTime(); 
      u = new Machine(); 
      u.setMachineId(rs.getInt("MACHINEID")); 
      u.setLocation(rs.getString("LOCATION")); 
      u.setMaintainenceDate(maintainenceDate); 
      u.setDateInstalled(dateInstalled); 
      u.setInstaller(rs.getString("INSTALLER")); 
      u.setMachineCode(rs.getString("MACHINECODE")); 
      u.setModel(rs.getString("MODEL")); 
      u.setManufacturerID(rs.getString("MANUFACTURERID")); 
      u.setName(rs.getString("NAME")); 
      u.setSoftware(rs.getString("SOFTWARE")); 

      myString = u.toString(); 
     } 

     returnString = "---" + myString + "---\n"; 
     query.close(); 

    } catch (Exception e) { 
     e.printStackTrace(); 

    } finally { 
     if (conn != null) 
      conn.close(); 

    } 

    // return returnString; 
    return u; 
} 

@GET 
@Path("/ManufacturerTable") 
@Produces(MediaType.APPLICATION_JSON) 
public List<Manufacturer> returnManufacturerTable() throws Exception { 

    PreparedStatement query = null; 
    String myString = ""; 
    String returnString = null; 
    Connection conn = null; 
    Manufacturer u = null; 
    List<Manufacturer> ulist = null; 
    int i = 0; 
    String uList = ""; 

    try { 
     conn = db.DBConn().getConnection(); 
     query = conn.prepareStatement("SELECT * FROM MANUFACTURER"); 
     ResultSet rs = query.executeQuery(); 
     JSONArray jsonArray = new JSONArray(); 

     while (rs.next()) { 
      myString = myString + rs.getString("MANUFACTURERNAME") 
        + "!!!!!" + rs.getInt("MANUFACTURERID"); 

      u = new Manufacturer(); 
      u.setManufacturerName(rs.getString("MANUFACTURERNAME")); 
      u.setManufacturerId(rs.getInt("MANUFACTURERID")); 
      ulist.add(i, u); 
      i++; 

      myString = myString+"\n"+u.toString(); 

     } 

     returnString = "---" + myString + "---\n"; 
     query.close(); 

    } catch (Exception e) { 
     e.printStackTrace(); 

    } finally { 
     if (conn != null) 
      conn.close(); 

    } 

    // return returnString; 
    /* Gson gson = new Gson(); 
    return gson.toJson(ulist);*/ 
    return ulist; 
} 
} 
+0

что мне нужно сделать сейчас, использует метод toString для показанных данных в формате json. Я не хочу использовать этот метод, хотя –

+0

Почему вы не возвращаете список объектов для таких же – virendrao

+0

Я сделал, это показывает мне ошибку –

ответ

0

Я думаю, что вы должны сначала очистить свой код. IE: вы объявляете эту переменную и никогда не используете ее.

JSONArray jsonArray = new JSONArray(); 

Во-вторых, почему вы поместили все свойства объекта в большую строку? Почему бы просто не добавить все объекты в массив, а затем преобразовать их в json-массив?

+0

Я могу добавить все объекты в список массивов. Тогда я просто проиграл. Не уверен, как преобразовать список объектов в jsonarray –