2016-07-24 9 views
4

私は春のブートと春のデータ休憩を使用してRESTful APIを構築しています。私は、タイムスタンプとしてjsonの応答形式で日付を付ける必要があります。現在、私の応答は次のとおりです。春データ休憩:日付をタイムスタンプとして日付シリアライズ

{ 
    "firstName": "An", 
    "lastName": "Nguyen", 
    "createdDate": "2016-04-17T03:25:44.000+0000" 
} 

として、私はそれを期待:

{ 
    "firstName": "An", 
    "lastName": "Nguyen", 
    "createdDate": "1469346389" 
} 

は、私はそれをどのように行うことができますか?何を再構成する必要がありますか?

マイモデル:

@Entity 
@Table(name = "users") 
public class User extends AbstractEntity<Long> implements UserDetails { 

    @Column(name = "first_name", length = 50) 
    private String firstName; 

    @Column(name = "last_name", length = 50) 
    private String lastName; 

    @Column(name = "created_date") 
    private Date createdDate = new Date(); 

    ..... 
} 

マイリポジトリ:任意の助け

@Transactional 
@RestResource(path = "users") 
public interface UserRepository extends PagingAndSortingRepository<User, Long>, JpaSpecificationExecutor<User> { 

    User findByUsername(@NotNull String username); 

} 

感謝。

+0

答えはややかに依存しますタイプ '日付'はです。それは 'Joda'、' java.time'、 'java.util'なのでしょうか?その答えはおそらくJacksonのSerializationFeatureを設定する必要がありますが、どちらが 'Date'のタイプに依存するのでしょうか。 – JudgingNotJudging

+0

@JudgingNotJudging 'createDate'フィールドの型は' java.util.Date'です。私の問題は、私が受け入れた答えによって解決されました –

答えて

3

この注釈はあなたを助けることを願って次のような

@JsonFormat(shape = JsonFormat.Shape.NUMBER) 
0

日付を長く保存できます。そのようなことを行うポストがここにあります。

Properly Utilizing Epoch Seconds with JPA in Spring Boot

+0

あなたの答えをありがとう。しかし、私はこれが最良の方法だとは思わないし、私はそのための別の解決策を探している。 –

0

あなたは春データRESTで使用されるデフォルトObjectMapperをカスタマイズすることができ、:

@Configuration 
public class SpringDataRestConfig extends RepositoryRestConfigurerAdapter { 
    @Override 
    public void configureJacksonObjectMapper(ObjectMapper objectMapper) { 
     objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true); 
    } 
} 
関連する問題