可以用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 creator = new InstanceCreator () { 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)
方法中更新对象。
Kotlin中的示例:
class TypeAdapterGen : TypeAdapter { var mGen: Gen constructor(gen: Gen) : super(){ mGen = gen } }