2016-09-07 50 views
0

我有一點問題。 我在json文件中存儲了一些數據,並且它工作正常。 但是,如果我嘗試檢索這些數據,我嘗試創建的對象的接口存在問題。 這是我班的簡化版GSON InstanceCreator設置數據

public class MyObject{ 

//this is a interface 
public Vector3Int position; 
...} 

好吧,GSON不能創建一個沒有consturctor接口,所以我創建這個類:

public class VectorInstanceCreator implements InstanceCreator<Vector3Int >{ 

    @Override 
    public Vector3Int createInstance(Type arg0) { 
     return new VectorImpl(); 
    } 

} 

我用它這種方式:

... 
    GsonBuilder gsonBuilder = new GsonBuilder(); 
    gsonBuilder.registerTypeAdapter(Vector3Int.class, new new VectorInstanceCreator()); 
    Gson gson = gsonBuilder.create(); 
    gson.fromJson(myJsonString, MyObject.class); 
    ... 

所以,它的工作原理,但在我的JSON文件中的數值,例如:

"position": {"x": 1.0, "y": 1.0,"z": 0.0} 

但Java對象向量中的每個值都是0.所以這意味着,gson只使用我的VectorInstanceCreator類的給定構造函數,但不設置JSON文件/對象的值。

如何通過使用與InstanceCreator的接口來設置此值?

回答