0
使用List
public class PilotMovement extends RealmObject {
private String type;
private RealmList<Coordinates> coordinates;
public PilotMovement() {
}
public PilotMovement(String type, RealmList<Coordinates> coordinates) {
this.type = type;
this.coordinates = coordinates;
}
public void setType(String type) {
this.type = type;
}
public void setCoordinates(RealmList<Coordinates> coordinates) {
this.coordinates = coordinates;
}
public class Coordinates extends RealmObject{
private double lon, lat;
public Coordinates(double lon, double lat) {
this.lon = lon;
this.lat = lat;
}
}
定製GSON型適配器RealmList如下
public class CoordinatesRealmListConverter implements
JsonSerializer<RealmList<Coordinates>>,
JsonDeserializer<RealmList<Coordinates>> {
@Override
public JsonElement serialize(RealmList<Coordinates> src, Type typeOfSrc, JsonSerializationContext context) {
JsonArray jsonArray = new JsonArray();
for (Coordinates coordinates: src) {
jsonArray.add(context.serialize(coordinates));
}
return jsonArray;
}
@Override
public RealmList<Coordinates> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
RealmList<Coordinates> coordinates = new RealmList<>();
JsonArray jsonArray = new JsonArray();
for (JsonElement element: jsonArray) {
coordinates.add(context.deserialize(element,Coordinates.class));
}
return null;
}
}
運行後顯示編譯錯誤的項目如下
錯誤:執行失敗的任務':app:transformJackWithJack ForDebug」。
com.android.jack.ir.JNodeInternalError: java.lang.Exception: java.lang.IllegalStateException: Unsupported type java.lang.Object
如何解決這個問題的解決方案是什麼?
這是好的,但我要通過這個數據到服務器,預計一樣名單類型。 –
這不是問題。你只需要配置你的JSON序列化器來從這個POJO格式化一個合適的JSON –
你的意思是像這樣的 新的Gson()。fromJson(jsonStr,LocationInfo.class); 請問我有一個示例代碼片段嗎? –