Bir nesneyi JSON’a ya da XML’e “serialize” ederken değişkeninizin tipi boolean ise ve Jackson kütüphanesi kullanıyorsanız değişken ismini verirken dikkatli olmanız gerekiyor. Eğer değişken isminizi isWhite ise ve primitive ise bazı IDE’lerin bazı versiyonları o değişkenin getter metodunu isWhite() olarak üretiyor. Jackson kütüphanesi isWhite() isimli bir getter görünce onu JSON nesnesinde white olarak bekliyor.
Eğer client’ınızda da JSON’ı isWhite olarak göndermeye çalışırsanız o değişken sunucuya ulaşmaz. Sunucuya ilk değeri false olarak gider.
Bunun çözmek için @JsonProperty notasyonunu kullanabilirsiniz. Ya da boolean değişkenleri primitive olarak kullanmazsınız.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class MyObject implements Serializable { private boolean isWhite; @JsonProperty(value="isWhite") public boolean isWhite() { return isWhite; } public void setWhite(boolean isWhite) { this.isWhite = isWhite; } } |