SORU
26 Ocak 2011, ÇARŞAMBA


Ek açıklamalar olmadan Seri hale getirme, belirli alanları dışarıda Nasıl Gson:

Gson öğrenmeye çalışıyorum ve alan dışlanma ile mücadele ediyorum. Burada derslerimi

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;
}

Bu GsonBuilder kullanın ve firstName country gibi bir alan adı için bir ExclusionStrategy ekleyebilirsiniz ama country.name gibi bazı alanların özelliklerini çıkarmak için yönetmek için görünmüyor olabilir.

public boolean shouldSkipField(FieldAttributes fa), FieldAttributes yöntemi kullanarak country.name gibi bir filtre ile sahada maç için yeterli bilgi içermiyor.

Bu sorun için bir çözüm ile herhangi bir yardım takdir ediyorum.

P. S: Bu geliştirmek ve filtre alanları için Düzenli ifade kullanmak istiyorum beri ek açıklamalar önlemek istiyorum.

Teşekkür ederim

Edit: Mümkünse Struts2 JSON plugin davranışını taklit 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: Ayrıca aşağıdaki soruya yeniden:

Daha fazla bu sorunu açıklığa kavuşturmak için aynı tip ikinci bir alan ekledim. Temelde ** 11 countrOfBirth.name hariç tutmak istiyorum. Ben de bir tür olarak Ülke dışlamak istemiyorum. Türleri aynı belirlemekte ve bunu çıkarmak istiyorum o nesne grafiği içinde gerçek yer burası.

CEVAP
18 EKİM 2011, Salı


Nishant iyi bir çözüm sağladı, ama daha kolay bir yolu var. Sadece @İfşa açıklama gibi: istediğiniz alanları işaretleyin

@Expose private Long id;

Seri hale getirmek için istediğiniz herhangi bir alanı dışında bırakın. O zaman sadece Gson nesne bu şekilde oluşturun:

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dogbert files

    Dogbert file

    12 Ocak 2012
  • gamingbits

    gamingbits

    2 Mayıs 2006
  • TeachMeComputer

    TeachMeCompu

    31 EKİM 2009