我想在對象構造函數中用來自Json的值填充對象字段。有可能使用json的json值填充當前對象?
public AbstractObject(String jsonSerializedObject) {
Gson gson = new Gson();
// Fill object values from json in *current* object
}
這可能嗎?
我想在對象構造函數中用來自Json的值填充對象字段。有可能使用json的json值填充當前對象?
public AbstractObject(String jsonSerializedObject) {
Gson gson = new Gson();
// Fill object values from json in *current* object
}
這可能嗎?
Gson不支持「填充現有對象」(尚未)。在這裏看問題431。
http://code.google.com/p/google-gson/issues/detail?id=431&q=existing
您可以使用InstanceCreator供應要填充的對象。
final Foo existing;
InstanceCreator<Foo> creator = new InstanceCreator<Foo>() {
public Foo createInstance(Type type) { return existing; }
}
Gson gson = new GsonBuilder().registerTypeAdapter(Foo.class, creator).create();
Foo value = gson.fromJson(jsonString, Foo.class);
// value should be same as existing
http://www.javacreed.com/gson-typeadapter-example/
覆蓋與要填充,然後更新在read(jsonReader: JsonReader)
方法的對象對象的構造。
實例科特林:
class TypeAdapterGen : TypeAdapter<Gen> {
var mGen: Gen
constructor(gen: Gen) : super(){
mGen = gen
}
}
感謝@Brian代碼重新格式化! – Brontomania
你能可能創建一個新的對象和所有字段複製到老嗎?爲什麼你不能簡單地按照通常的方式去使用新的對象? – maaartinus
它已經有一段時間了......如果你發現任何替代方法或任何你用@pixel – Vamsidhar
@Elnino解決的方法,你能分享嗎?我沒有。剛創建的複製構造函數 – pixel