【问题标题】:return just part of the bean with toJson()使用 toJson() 只返回 bean 的一部分
【发布时间】:2015-08-03 18:39:59
【问题描述】:

我正在尝试返回{"status": its value}´在routeD!=0 的情况下,目前我得到{"status":201,"routes":null} 我会在没有"routes":null 的情况下以这种形式得到{"status":201} 的响应同时我不想丢失routeD==0 的响应,例如 {"status":230,"routes":[1,9,3]}

我需要任何帮助。

接收器类:

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

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response storeData(Data data) {
        Database db = new Database();

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

        // Jackson class to wrapper the data in JSON string.
        SDBean bean = new SDBean();
        if (routeD != 0) {
            bean.status = db.insertData(macD, routeD, latD, longD);         
            return Response.status(bean.status).entity(bean.toJson()).build();

        } else {
            bean.routes = db.detectRoute(latD, longD);
            return Response.status(230).entity(bean.toJson()).build();

        }

    }

}

SDBean 类:

public class SDBean {

    public int status;
    public ArrayList<Integer> routes;

    public SDBean(){
    status = 230;
}

    public String toJson() {

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

        }
         System.out.println(json);
        return json;
    }

}

【问题讨论】:

    标签: java json jersey jackson


    【解决方案1】:

    只需使用@JsonInclude(JsonInclude.Include.NON_NULL)

    注释用于指示被注释属性的值(当用于字段、方法或构造函数参数时)或被注释类的所有属性的值何时被序列化。没有注释的属性值总是包含在内,但是通过使用这个注释可以指定简单的排除规则来减少要写出的属性数量。

    import com.fasterxml.jackson.annotation.JsonInclude;
    [...]
    
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public class SDBean {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 2011-08-22
      • 2014-03-29
      • 1970-01-01
      相关资源
      最近更新 更多