SORU
14 HAZİRAN 2011, Salı


Nasıl Jackson nesneleri bir dizi deserialise için kullanmak

Jackson veri bağlama belgeleri (http://jackson.codehaus.org/DataBindingDeepDive) Jackson "desteklenen türler" ama bunun için tam sözdizimi çözemiyorum. bütün Diziler deserialising desteklediğini gösterir

Tek bir nesne için bunu yapmak istiyorum:

//json input
{
    "id" : "junk",
    "stuff" : "things"
}

//Java
MyClass instance = objectMapper.readValue(json, MyClass.class);

Şimdi bir dizi için bunu yapmak istiyorum:

//json input
[{
    "id" : "junk",
    "stuff" : "things"
},
{
    "id" : "spam",
    "stuff" : "eggs"
}]

//Java
List<MyClass> entries = ?

Kimseye eğer sihir eksik bir komut var mı? Yoksa çözümü nedir?

Çok teşekkürler.

CEVAP
14 HAZİRAN 2011, Salı


İlk bir eşleyici oluşturun :

import com.fasterxml.jackson.databind.ObjectMapper;// in play 2.3
ObjectMapper mapper = new ObjectMapper();

Dizi Olarak:

MyClass[] myObjects = mapper.readValue(json, MyClass[].class);

Liste:

List<MyClass> myObjects = mapper.readValue(jsonInput, new TypeReference<List<MyClass>>(){});

Başka bir şekilde Liste türünü belirlemek için:

List<MyClass> myObjects = mapper.readValue(jsonInput, mapper.getTypeFactory().constructCollectionType(List.class, MyClass.class));

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Commander Chalkboard

    Commander Ch

    20 Ocak 2014
  • failblog

    failblog

    17 HAZİRAN 2008
  • Warner Bros. UK

    Warner Bros.

    6 HAZİRAN 2008