空のクラスからJSONを作ろうとしたらエラーになりました

こんにちは、さるまりんです。

タイトル通りなのですが、空のクラスから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);

簡単なことなのですが、知らなかったので焦ってしまいました。

勉強ですね。

読んでくださってありがとうございます!

それではまた。