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ş:
Jackson (JSON) - " ile seri hale g...
Garip Jackson istisna Hazırda nesne se...
Seri hale getirilirken özel üye veri...
Tüm xsi ve yanıtlanan kullanılmazsa bi...
Nasıl Json.net ile seri hale getirilir...