SORU
20 Aralık 2010, PAZARTESİ


JSON ile Jackson: Tanınmayan alan, gözardı olarak işaretlenmemiş

Java bir nesne için belirli bir JSON dize dönüştürmek istiyorum. JSON işlemek için Jackson kullanıyorum. Giriş JSON üzerinde kontrolü (web hizmetinden okudum) var. Bu giriş benim JSON

{"wrapper":[{"id":"13","name":"Fred"}]}

Burada basitleştirilmiş kullanım örneği:

private void tryReading() {
    String jsonStr = "{\"wrapper\"\:[{\"id\":\"13\",\"name\":\"Fred\"}]}";
    ObjectMapper mapper = new ObjectMapper();  
    Wrapper wrapper = null;
    try {
        wrapper = mapper.readValue(jsonStr , Wrapper.class);
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("wrapper = "   wrapper);
}

Varlık sınıfım

public Class Student { 
    private String name;
    private String id;
    //getters & setters for name & id here
}

Sarıcı Dersim temelde öğrencilerin listesini almak için bir kapsayıcı nesnesi

public Class Wrapper {
    private List<Student> students;
    //getters & setters here
}

Ben bu hatayı almaya devam ediyorum ve" null döndürür. "sarıcı Eksik olan ne olduğundan emin değilim. Lütfen biri yardım edebilir mi?

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "wrapper" (Class Wrapper), not marked as ignorable
 at [Source: java.io.StringReader@1198891; line: 1, column: 13] (through reference chain: Wrapper["wrapper"])
 at org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53)

CEVAP
25 EYLÜL 2011, Pazar


Jackson'ın sınıf düzeyi açıklama kullanabilirsiniz:

@JsonIgnoreProperties

Senin POJO tanımlanan etmedin her özellik göz ardı edilir. Sadece JSON özellikleri bir çift arıyoruz ve bütün haritalama yazmak istemiyorum çok yararlı. Jackson's website Daha fazla bilgi. Eğer herhangi bir özelliği olmayan ilan görmezden gelmek istiyorsan yazmalısın:

@JsonIgnoreProperties(ignoreUnknown = true)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • Jaclyn W

    Jaclyn W

    5 Mayıs 2006
  • Jejoab

    Jejoab

    4 NİSAN 2008