SORU
14 EKİM 2011, Cuma


Seri hale getirilirken Jackson ile çeteleler

Bir Numaralama aşağıda desrcibed var:

public enum OrderType {

  UNKNOWN(0, "Undefined"),
  TYPEA(1, "Type A"),
  TYPEB(2, "Type B"),
  TYPEC(3, "Type C");

  private Integer id;
  private String name;

  private WorkOrderType(Integer id, String name) {
    this.id = id;
    this.name = name;
  }

  //Setters, getters....
}

Benim denetleyicisi ( new OrderType[] {UNKNOWN,TYPEA,TYPEB,TYPEC};) ile numaralama dizi dönün ve Bahar aşağıdaki json dize içine sıralar:

["UNKNOWN", "TYPEA", "TYPEB", "TYPEC"] 

Jackson POJOs gibi numaralamalar seri hale getirmek için zorlamak için en iyi yaklaşım nedir? E. g.:

[
  {"id": 1, "name": "Undefined"},
  {"id": 2, "name": "Type A"},
  {"id": 3, "name": "Type B"},
  {"id": 4, "name": "Type C"}
]

Farklı ek açıklamalar ile oynadım ama böyle bir sonuç almak için yönetmek değil.

CEVAP
14 EKİM 2011, Cuma


En sonunda kendim çözüm buldum.

@JsonSerialize(using = OrderTypeSerializer.class) numaralama açıklama ve özel bir seri hale getirici impelement gerekiyordu

public class OrderTypeSerializer extends JsonSerializer<OrderType> {

  @Override
  public void serialize(OrderType value, JsonGenerator generator,
            SerializerProvider provider) throws IOException,
            JsonProcessingException {

    generator.writeStartObject();
    generator.writeFieldName("id");
    generator.writeNumber(value.getId());
    generator.writeFieldName("name");
    generator.writeString(value.getName());
    generator.writeEndObject();
  }
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LearnKey

    LearnKey

    19 AĞUSTOS 2008
  • MotoManTV

    MotoManTV

    10 Aralık 2009
  • vgeller1

    vgeller1

    22 Kasım 2009