2017-11-29 57 views
0

jsonson APIを使用して、Javaオブジェクトをjson文字列に変換しようとしています。私はいくつかのポストを通過したが、以下のスタックトレースを通過することはできません。JavaオブジェクトをJSONオブジェクトに変換中にエラーが発生しました

com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class java.io.FileDescriptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.imc.idm.data.request.DirectoryDetailData["logoImage"]->org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile["inputStream"]->java.io.FileInputStream["fd"]) 
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:284) 
    at com.fasterxml.jackson.databind.SerializerProvider.mappingException(SerializerProvider.java:1110) 
    at com.fasterxml.jackson.databind.SerializerProvider.reportMappingProblem(SerializerProvider.java:1135) 
    at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:69) 

私のコードは、以下のこれに類似している:

public class Infomation { 
    private MultipartFile img; 
    private Manufacture manufacture; 
    private List<Long> otherVal1; 
    private List<MyCustomClass> otherVal2; 
} 

コンポーネント:

ObjectMapper objectMapper = new ObjectMapper(); 
final String jsonString = objectMapper.writeValueAsString(infomationObject); 
final MyDTO myDto = MyDTO.newBuilder().withValue(jsonString).build(); 
dataRepository.save(myDto); 
+0

は、あなたのクラスは直列化可能であることを確認してくださいを参照してください、私は彼らがSerializableインタフェースを実装して意味。 –

+0

MultipartFileはapisに存在するクラスなので、Infomationクラスのみをシリアル化する必要がありますか? –

+0

'objectMapper'とは何か' infomationObject'とは何ですか?詳細情報を提供してください – nhoxbypass

答えて

1

シリアライズインターフェース/マーカーがMultipartFileに実装されていません。あなたは依存関係に春のWebを持っている場合、それはSerializableを実装してMultipartFileとして

することは、あなたはCommonsMultipartFileを使用することができます。詳細については

Commons Multipart File Java API

関連する問題