Gson öğrenmeye çalışıyorum ve alan dışlanmasıyla mücadele ediyorum. İşte sınıflarım
public class Student {
private Long id;
private String firstName = "Philip";
private String middleName = "J.";
private String initials = "P.F";
private String lastName = "Fry";
private Country country;
private Country countryOfBirth;
}
public class Country {
private Long id;
private String name;
private Object other;
}
Ben GsonBuilder kullanmak ve böyle bir alan adı için bir ExclusionStrategy ekleyebilir firstNameveya countryama gibi bazı alanların özelliklerini dışlamak yönetmek gibi olamaz country.name.
public boolean shouldSkipField(FieldAttributes fa)FieldAttributes yöntemi kullanarak alanı benzer bir filtreyle eşleştirmek için yeterli bilgi içermiyor country.name.
Not: Bu konuda iyileştirmek ve alanları filtrelemek için RegEx kullanmak istediğimden ek açıklamalardan kaçınmak istiyorum.
Düzenleme : Struts2 JSON eklentisi davranışını taklit mümkün olup olmadığını görmek için çalışıyorum
Gson kullanarak
<interceptor-ref name="json">
<param name="enableSMD">true</param>
<param name="excludeProperties">
login.password,
studentList.*\.sin
</param>
</interceptor-ref>
Düzenleme: Aşağıdaki ekleme ile soruyu yeniden açtım:
Bu sorunu açıklığa kavuşturmak için aynı türde ikinci bir alan ekledim. Temelde hariç tutmak istiyorum country.nameama değil countrOfBirth.name. Ayrıca Ülke'yi tür olarak hariç tutmak istemiyorum. Türler aynıdır, nesne grafiğinde tam olarak saptamak ve hariç tutmak istediğim gerçek yerdir.
JsonSerializertür için özel bir durum oluşturmaya dayanır - Countrysizin ExclusionStrategydurumunuzda - daha sonra uygulanır ve hangi alanların serileştirileceğine karar verir.