2015-05-11 141 views
0

我有這樣的方法來使用JSON字符串我正在這裏兩個返回values.The首先從insertData方法,它是整數201208getStopRoute是ArrayList中的第二個值。在這種情況下,如何在JSON中返回澤西島的這兩個值?發送JSON響應值

@Path("/data") 
public class Receiver { 



    @POST 
    @Consumes(MediaType.APPLICATION_JSON) 
    public Response storeData(Data data) { 

     String macD = data.getMac(); 
     int routeD = data.getRoute(); 
     double latD = data.getLatitude(); 
     double longD = data.getLongitude(); 

     Database db = new Database(); 
     int status = db.insertData(macD, routeD, latD, longD); // return 201 or 208 
     ArrayList<Integer> route_number = db.getStopRoute(latD, longD); //return [1,9,3] 

     return Response.status(status).build(); 

    } 

} 

JSON相關性:

<dependency> 
    <groupId>org.glassfish.jersey.media</groupId> 
    <artifactId>jersey-media-json-jackson</artifactId> 
    <version>2.16</version> 
</dependency> 
+1

你可以把牛逼例如,在地圖中下襬,然後轉換爲帶有Jackson庫的JSON。 – Rollerball

回答

1

請考慮這樣做:

1碼

 @POST 
     @Consumes(MediaType.APPLICATION_JSON) 
     public Response storeData(Data data) { 

      String macD = data.getMac(); 
      int routeD = data.getRoute(); 
      double latD = data.getLatitude(); 
      double longD = data.getLongitude(); 

      Database db = new Database(); 



      //inserted by jean 
     SDBean bean= new SDBean(); 
     bean.status = db.insertData(macD, routeD, latD, longD); 
     bean.routes= db.getStopRoute(latD, longD); //return [1,9,3] 

     return Response.status(bean.status).entity(bean.toJson()).build(); 

    } 

    //inserted by jean 
    public class SDBean{ 

      public int status; 
     //@Expose 
     public ArrayList<Integer> routes; 
     public String toJson(){ 
      //if you use jackson 


    ObjectMapper mapper = new ObjectMapper(); 
    String json =null; 
    try { 
     json = mapper.writeValueAsString(this); 
    } catch (JsonProcessingException e) { 

     e.printStackTrace(); 
    } 
     return json; 

     } 

享受:)

+0

如何導入'@ Expose'?在問題中,我在上面的pom.xml文件中有這個Jackson依賴項。當我懸停時我不能導入它。 –

+0

如果你已經有傑克遜不使用Expose並跳過2。 @Expose註解是Gson – jeorfevre

+0

的一部分,這一行中的'sb'是什麼'mapper.writeValueAsString(sb);'我得到'sb不能解析爲變量'? –