こんにちは、さるまりんです。
タイトル通りなのですが、空のクラスからJSONを作ろうとしたらエラーになりました。
public class EmptyClass {
}
こういうプロパティも何もないクラスをJacksonを使ってJSONに変換しようと、
EmptyClass obj = new EmptyClass();
mapper.writeValueAsString(obj);
このようにすると
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class EmptyClass and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)
こんなエラーが出ました。
空のクラスのJSONなので
{}
を期待していたのですが、エラーです。
解決方法として
(to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)
と書いてくれているのですが、これをどこでやるのか?と思ったら、ObjectMapperでできるようです。
ObjectMapper
に以下のようにしておくと、エラーになりません。
ObjectMapper mapper = new ObjectMapper();
mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
簡単なことなのですが、知らなかったので焦ってしまいました。
勉強ですね。
読んでくださってありがとうございます!
それではまた。