使用两个方法的 return 值发送 JSON 响应

send JSON response with two method's return values

我有这个方法来使用 JSON 字符串我在这里得到两个 return values.The 首先从 insertData 方法,它是整数 201208getStopRoute 的第二个值是 ArrayList。在这种情况下,我如何 return 泽西岛中的两个值与 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.代码

     @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;

        }

尽情享受吧:)