2017-03-12 13 views
1

私はこのような方法があります:COMのインスタンスをデシリアライズできません:私はメッセージリスト<Entity>をリスト<DTO>に変換する方法オブジェクトマッパーを使用しているオブジェクト?

com.fasterxml.jackson.databind.JsonMappingExceptionの下に取得していますList値を変換しようとすると

public List<CustomerDTO> getAllCustomers() { 
    Iterable<Customer> customer = customerRepository.findAll(); 
    ObjectMapper mapper = new ObjectMapper(); 
    return (List<CustomerDTO>) mapper.convertValue(customer, CustomerDTO.class); 
} 

をSTART_ARRAYのうち.finman.customer.CustomerDTO

+0

を、あなた自身がキャスト見つけたとき、あなたはおそらく、あなたがやって(またはやっているしたい)していると思う何をしていません。 –

+0

なぜそれをしますか?これは、顧客をJSONにシリアル化し、JSONをCustomerDTOに解析することで構成されていますか? 2つのクラスが同じ構造を持たず、リファクタリングをサポートしない場合、実行時に非常に非効率的で、非常に効率的ではありません。 CustomerからCustomerDTOを作成するコンストラクタやメソッドを作成するだけではどうですか? –

答えて

0
mapper.convertValue(customer, CustomerDTO.class) 

トークンこの試みは、単一のCustomerDTOを作成し、それらのリストは作成しません。

おそらくこれは役立ちます:一般的なルールとして

mapper.readValues(customer, CustomerDTO.class).readAll() 
+0

そこに何を使うのですか?どのように変換するオブジェクトをオブジェクトマッパーが知るのか、そのCustomerDTOを使用しないのですか? –

+0

私の編集を参照してください。 –

+0

ごめんなさい。私も同じことを試みましたが、警告を受けました ObjectMapper型のreadValues(JsonParser、ResolvedType)メソッドは引数には適用されません(Iterable 、クラス) –

関連する問題