Jerseyを使用してRESTサービスのクライアントを作成しました。何らかの理由で、非整列化されるJSONに空の配列がある場合、Listオブジェクトには単一の要素があります。そのオブジェクトは、デフォルトのコンストラクタで構築されたかのように、すべてのメンバーがnullに設定されています。Jerseyクライアントが空でなければならないときにJerseyクライアントがリストにオブジェクトを挿入するのはなぜですか?
Order.java:JSONサービスを消費
@XmlRootElement
public class Order {
private int id;
private List<Photo> photos;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public List<Photo> getPhotos() {
return photos;
}
}
クライアントコード:
{"id":704,"photos":[]}
をただし、リスト:
Client client = Client.create();
WebResource webResource = client.resource(environment.url);
Order order = webResource.path("Orders")
.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
.accept(MediaType.APPLICATION_JSON_TYPE)
.post(Order.class, formData);
ログはJSONが返されたことを示しています「写真」は、期待通りに空ではなく、単一の写真オブジェクトを含む。このオブジェクトのすべてのメンバーは、デフォルトコンストラクタで構築されたかのようにnullです。
このオブジェクトを作成する理由とその理由は何ですか?
詳細:代わりに、オブジェクトのリストで、私は列挙型のリストをデシリアライズしようとすると、同様の問題が存在します。この場合、今度は "null"を含むサイズ1のListを取得します。