java.lang.IllegalArgumentException: Can not set com.google.api.services.blogger.model.Post$Author field com.google.api.services.blogger.model.Post.author to com.google.gson.internal.LinkedTreeMap 2021/03/28
2021/04/04

はじまり

blogger api です。javaです。 json→java objectをやっていて、gson使えばよいのかとやっていて エラーになってしまっていました。
java.lang.IllegalArgumentException: Can not set com.google.api.services.blogger.model.Post$Author field com.google.api.services.blogger.model.Post.author to com.google.gson.internal.LinkedTreeMap

方針変更

gsonを直接使う方法ではなく、com.google.api.client.json.JsonObjectParserを使う方法に変更。 以下、コード
final JsonFactory factory = GsonFactory.getDefaultInstance();
final JsonObjectParser parser = new JsonObjectParser(factory);
final InputStream inputStream = TestGson.class.getResourceAsStream("/list.json");
{
final Post[] posts = parser.parseAndClose(new InputStreamReader(inputStream), Post[].class);
Arrays.asList(posts).forEach(a -> {
System.out.println(a);
});
}

: