我正在开发一个简单的Java RESTful服务。我一直在研究几种JSON编组/解组的选项,如jaxb、jackson等,这些可能是比较新的技术,我试图找到它们的用法。我想知道什么是最好的方法和技术,特别是考虑到我对许多对象感兴趣,并且已经将其实现为不可变对象,并使用构建器模式。因此,没有setter,构造函数是私有的。
我看过了这个之前的问题:Jackson + Builder Pattern?,发布在stackoverflow上。我正在考虑类似这种方法,尽管获得有关使用@JsonDeserialize的更多资源的指针将非常有帮助。
这是一个非常简单的示例,显示了我正在考虑的对象类型。
我看过了这个之前的问题:Jackson + Builder Pattern?,发布在stackoverflow上。我正在考虑类似这种方法,尽管获得有关使用@JsonDeserialize的更多资源的指针将非常有帮助。
这是一个非常简单的示例,显示了我正在考虑的对象类型。
public class Reading {
private final double xCoord;
private final double yCoord;
private final double diameter;
private final double reliability;
private final String qualityCode;
private Reading(Builder builder){
xCoord = builder.xCoord;
yCoord = builder.yCoord;
diameter = builder.diameter;
reliability = builder.reliability;
qualityCode = builder.qualityCode;
}
public static class Builder {
//required parameters
private final double diameter;
//optional parameters
private double xCoord = 0.0;
private double yCoord = 0.0;
private double reliability = 1.0;
private String qualityCode;
public Builder (double diameter){
this.diameter = diameter;
}
public Builder reliability(double val){
reliability = val;
return this;
}
public Builder qualityCode(String qualityCode){
this.qualityCode = qualityCode;
return this;
}
public Builder coordinates(double xCoord, double yCoord){
this.xCoord = xCoord;
this.yCoord = yCoord;
return this;
}
public Reading build(){
return new Reading(this);
}
}
public double getXCoord() {return xCoord;}
public double getYCoord() {return yCoord;}
public String getQualityCode() {return qualityCode;}
public double getDiameter() { return diameter;}
public double getReliability() {return reliability; }
这个对象的编组没有问题,但是解组似乎不是很直接。此外,是否支持省略空值对象值的条目?