私はjsonを取得し、Gsonの能力を使用してPOJOに変換しようとしています。私は別のパッケージのクラスとしてシリアライズされたクラスで作業していますが、今はシリアライズされたクラスを呼び出すクラスの内部クラスになるようにしようとしています。Gsonから内部クラスのpojoシリアル化
public class A {
private final Gson gson;
public A() {
gson = new GsonBuilder().serializeNulls().create();
}
public void foo(String json){
B b = gson.fromJson(json, B.class);
}
public static class B {
private String bar;
public String getBar(){
return bar;
}
}
}
サンプルJSON:
{"bar": "test"}
このセットアップは、内部クラス変数のnull値を返します。この場合、ちょうどバー。この例では、渡されるjsonがクラスBの変数の名前と一致することを確認しました。また、私は内部クラスを非静的で非公開にして成功を収めて実験しました。私の理解には、gsonを使ってシリアル化するためには、静的なクラスである必要があります。私が間違ってやっていることがはっきりと分かりますか?
*バー*のセッターが足りないことはありますか?サンプルJSONを投稿できますか? – watery
これは、内部クラスとは別のパッケージで作業していたときとまったく同じクラスなので、それではないと思いました。とにかく試してみて、運がなかった。 JSONサンプルを追加するために投稿を編集します。 – Mitch
'foo'関数のパラメータとして' gson'をなぜ持っていますか?それはすぐに上書きされるということでしょうか? – Michael