2016-04-14 2 views
0

REST JSONレスポンスでmongodbに格納された日付を返すのに問題があります。私はSpring MVC 4.2.5 @RestControllerと@ResponseBodyを使用しています。私は "createdDate"としてMongodbに保存された日付を持っています:ISODate( "2016-04-14T20:26:00.682Z")。私はspring mvcでコレクションをコントローラに戻してJSONデータをクライアントに返すと、DateTime(JODA)クラス全体がjsonifiedになります。 DD-MM-YYYY形式の日付だけが必要で、他のすべての属性は必要ありません。私はmonngoDBに日付を文字列として保存したくありません。Spring mvc RESTとmongoDBの日付フィールドの問題

これは私が日付を設定しています方法です:

DateTime date = new DateTime(DateTimeZone.forID("Asia/Kolkata")); 
    booking.setCreatedDate(date); 

これは、それがMongoDBの中でどのように見えるかです。

 "createdDate" : ISODate("2016-04-14T20:26:00.682Z") 

これは私が応答を作成しています方法です:

以下
Object resp; 
    booking = getFromMongo(id); 
    resp.setBooking(booking) 
    return resp; 

は私のJSONレスポンス私は、全体のDateTimeクラスをjsonifying避けるにはどうすればよい

  "createdDate": { 
      "year": 2016 
      "minuteOfHour": 56 
      "weekyear": 2016 
      "yearOfEra": 2016 
      "hourOfDay": 1 
      "era": 1 
      "dayOfMonth": 15 
      "dayOfWeek": 5 
      "dayOfYear": 106 
      "secondOfMinute": 0 
      "millisOfSecond": 764 
      "weekOfWeekyear": 15 
      "yearOfCentury": 16 
      "monthOfYear": 4 
      "centuryOfEra": 20 
      "secondOfDay": 6960 
      "minuteOfDay": 116 
      "millisOfDay": 6960764 
      "zone": { 
      "uncachedZone": { 
      "cachable": true 
      "fixed": false 
      "id": "Asia/Kolkata" 
      }- 
      "fixed": false 
      "id": "Asia/Kolkata" 
      }- 
      "millis": 1460665560764 
      "chronology": { 
      "zone": { 
      "uncachedZone": { 
      "cachable": true 
      "fixed": false 
      "id": "Asia/Kolkata" 
      }- 
      "fixed": false 
      "id": "Asia/Kolkata" 
      }- 
      }- 
      "equalNow": false 
      "beforeNow": true 
      "afterNow": false 
      } 

です。

1.Add com.fasterxml.jackson.datatype:jackson-datatype-jodaへの依存:

+0

回答を確認できますか?フィードバックを教えてください –

答えて

0

あなたはYYYY-MM-DDとして日付をフォーマットするために必要なものがあります。

2. application.propertiesファイルにspring.jackson.serialization.write-dates-as-timestamps: falseを追加して、タイムスタンプとして日付をフォーマットしないようにJacksonを設定してください。

3.Annotate。あなたは、タイムゾーンの問題に直面する可能性がありyyyy-MM-ddとしてJSONレスポンスを持っているのに十分だろう@JsonFormat(pattern="yyyy-MM-dd")

とLocalDataTimeフィールドまたはgetterメソッド。 詳細は次のとおりです。 https://github.com/FasterXML/jackson-datatype-jsr310/issues/14

+0

ありがとう@Json。しかし、私は自分のシリアライザを書いて解決しました。 \t @JsonSerialize(= JsonDateSerializer.classを使用) \t public DateTime getCreatedDate(){ \t \t return createdDate; \t} –

+0

もちろん、そのプロセスでも実行できます。返信いただきありがとうございます。 –

関連する問題