オブジェクトを取るジャージーを使用したエンドポイントがあります。オブジェクトには、メンバーの 1 つとしてリストがあります。ただし、空の配列を送信すると、リストに空の要素が表示されます。「空の要素」とは、そこにオブジェクトがあり、すべてのフィールドが null であることを意味します。
@XMLRootElement
public class myContainer {
public List<myObject> list;
// etc
}
@XMLRootElement
public class myObject {
public String data1;
public String data2;
// etc
}
// I hit the following with "{\"list\":[]}"
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response post(final myContainer x) {
for (myObject obj : x.list) {
// why do I hit this?
// debugging, I actually have an object here with all null fields
obj.data1 == null; // true
obj.data2 == null; // true
}
}
ジャージーがこれを行う理由を知っている人はいますか?
WRITE_NULL_PROPERTIES を false に設定していますが、これがどのように影響するかわかりません。