2012-06-27 11 views
6

निम्नलिखित प्रश्न को WRT:JAX-आरएस जैक्सन Json प्रदाता दिनांक स्वरूप अंक

Jersey + Jackson JSON date format serialization - how to change the format or use custom JacksonJsonProvider

मैं जानना चाहता

  • जैक्सन को निर्दिष्ट है कि json दिनांक स्वरूप एक यूनिक्स समय पूर्णांक तक सामान्यीकृत किया जाना चाहिए चाहते हैं?

फ़ॉलो-अप प्रश्न ...

  • वहाँ अपने रुख कभी भी में एक परिवर्तन हाल ही में हुआ है?
  • जैक्सबी एक्सएमएल आउटपुट द्वारा प्रदान किए गए प्रारूप में दिनांक प्रारूप को सामान्यीकृत नहीं किया जाना चाहिए?
  • क्यों/क्यों नहीं?
  • इस मुद्दे को हल करने में कोई भी प्रयास किया गया है?
  • में रेस्टएसी ने एक जेसन प्रदाता शमन प्रदान किया है जो आम तौर पर पहचानने योग्य दिनांक प्रारूप में जेसन की तारीख को आउटपुट करेगा? जोर से चिल्ला के लिए

उत्तर

11

क्षमा करें लोग - मैं यहाँ जवाब

http://wiki.fasterxml.com/JacksonFAQDateHandling,

यहाँ

http://wiki.fasterxml.com/JacksonFAQ#Serializing_Dates,

यहाँ

http://wiki.fasterxml.com/JacksonHowToCustomSerializers

पाया यहाँ

http://jackson.codehaus.org/1.1.2/javadoc/org/codehaus/jackson/map/util/StdDateFormat.html

@JsonSerialize का उपयोग करना (का उपयोग कर = ...) रास्ता:

public class JsonStdDateSerializer 
extends JsonSerializer<Date> { 
    private static final DateFormat iso8601Format = 
    StdDateFormat.getBlueprintISO8601Format(); 

    @Override 
    public void serialize(
    Date date, JsonGenerator jgen, SerializerProvider provider) 
    throws IOException, JsonProcessingException { 

    // clone because DateFormat is not thread-safe 
    DateFormat myformat = (DateFormat) iso8601Format.clone(); 
    String formattedDate = myformat.format(date); 
    jgen.writeString(formattedDate); 
    } 
} 
+3

किसी ने इस उत्तर को कम किया। समझाने की देखभाल क्यों? मुझे जवाब खुद को पसंद नहीं है, लेकिन इसके आसपास अनुशंसित तरीका हैं। आप जैक्सब और जैक्सन के बीच असहमति के अस्तित्व के लिए मुझे या मेरा जवाब दोष नहीं दे सकते। आपको उन दो अंगों पर अपना रान लेना होगा। –

2

यह भी ObjectMapper (कम से कम 1.9.11 में एक विशेषता द्वारा नियंत्रित किया जाता , और संभवतः पुराने):

ObjectMapper om = new ObjectMapper(); 
om.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false); 
om.writer().writeValue(System.out, objectWithDateProperty); 

मैं कैसे एलान के तौर पर वस्तु परिभाषा itsel पर बराबर करने के लिए नहीं दिख रहा है च।

संबंधित मुद्दे