カスタムJsonDeserializer使用する必要があります:あなたはシリアル化からいくつかのフィールドを除外したい場合は、あなたの中でそれらを宣言する必要が
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(MyModel.class, new MyCustomDeserializer());
Gson gson = gsonBuilder.create();
MyModel model = gson.fromJson(jsonString, MyModel.class);
:このようなあなたのGson
インスタンスを初期化し、その後
private class MyCustomDeserializer implements JsonDeserializer<MyModel> {
@Override
public MyCustomDeserializer deserialize(JsonElement json, Type type,
JsonDeserializationContext context) throws JsonParseException {
// initialize an instance of your model
MyModel myModel = new MyModel();
JsonArray jArray = (JsonArray) json; // get json array
JsonObject jsonObject = (JsonObject) jArray.get(0); // get first object
// do what you want with the first object
myModel.setParameter(jsonObject.get("parameter").getAsInt());
// ignore next json objects
return myModel;
}
}
をモデル:transient
:
private transient String name; // will be ignored from Gson
おそらくt彼は便利です:https://stackoverflow.com/questions/41323887/partial-gson-deserialization – msanford