私はオブジェクトを持っています
public class Point{
int x, y;
Point(int x, int y){
this.x = x;
this.y = y;
}
public String toString(){
String ret = "[";
ret += Integer.toString(x);
ret += ", ";
ret += Integer.toString(y);
ret += "]";
return ret;
}
}
次のように、Gson を使用してこのオブジェクトを逆シリアル化することができました。
class PointDeserializer implements JsonDeserializer<Point>{
@Override
public Point deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
Gson gson = new Gson();
int[] tmp = gson.fromJson(json, int[].class);
int a = tmp[0];
int b = tmp[1];
return new Point(a,b);
}
}
今、私はついにそれを機能させるために以下を使用します。type と str は文字列であることに注意してください。
Class myClass = Class.forName(type);
Class myClassDeserializer = Class.forName(type + "Deserializer");
Gson gson = new GsonBuilder().registerTypeAdapter(myClass, myClassDeserializer.newInstance()).create();
Object ret = gson.fromJson(str, myClass);
ここが主な問題です。Point[]
私はクラスなどに対してもこれをやりたいですPoint[][]
。
Point のすべての次元に対してデシリアライザーを作成する必要がありますか、それともより良い方法がありますか?
助けてください。