基本上,我在一台服务器上将其编组为 JSON,然后将其发送到另一台服务器,在那里它应该被解组。我使用了一个名为列表包装器的响应对象,因此如果有任何错误,我可以将它们传递出去。通过 badgerfish(jettison) 在下面将 JSON 编组在一个 resteasy 类中,然后返回到另一个服务器,GSON 将解组为一个 listwrapper 对象,但里面的列表是空的。有任何想法吗?注意:列表必须保持通用,因为不同的对象可能会进入列表,尽管列表一次总是只有一种类型。
json
解组
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
Object List;
if (!JSON.equals("")) {
List = gson.fromJson(new BufferedReader(new StringReader(JSON)), ListWrapper.class);
}
列表包装器类型
@XmlRootElement(name = "ListWrapper")
public class ListWrapper {
private Vector<Object> objects;
private String status;
private int batch;
private ValidationException e;
public ListWrapper() {
this.setStatus("Success");
}
public ListWrapper(Vector<Object> list) {
this.setStatus("Success");
this.objects = list;
}
public ListWrapper(int x) {
this.setStatus("batch");
this.batch = x;
}
public Vector<Object> getList() {
return objects;
}
public void setList(Vector<Object> object) {
this.objects = object;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
@XmlJavaTypeAdapter(ThrowableAdapter.class)
public ValidationException getE() {
if (e != null) {
return e;
} else {
return null;
}
}
public void setE(ValidationException x) {
this.e = x;
}
public int getBatch() {
return batch;
}
public void setBatch(int batch) {
this.batch = batch;
}
}