オブジェクト内の関数にアクセスせずに、Spring for Android を使用して安静なサーバーと gson から Converter json から Java オブジェクトにデータを要求しています。
jsonプロパティ「user_id」があるので、これを変換後のsqliteデータの主キーとして保存したい。
問題は、私のsqliteライブラリが「mId」プロパティを抽象クラスの主キーとして定義していることです。また、gson convertは「set関数」を使用してプロパティを設定していません。私が望む唯一のことは、user_id を mId に適切に変換することです。
コードは次のとおり
です。 1. sqlite にアクセスするための抽象クラス:
public abstract class Model {
protected Long mId = null;
public final Long getId() {
return mId;
}
public void setId(Long id){
mId = id;
}
public void saveToSqlite(){
//using mId;
}
}
2.安静なユーザーデータのクラス:
public class User extends Model implements Serializable{
private static final long serialVersionUID = 1L;
@SerializedName("user_id")
private Long userId;
public Long getUserId() {
return userId;
}
//this function is not accessed when user object generated
public void setUserId(Long userId) {
this.userId = userId;
this.setId(userId);
}
}
3.コードのリクエストと変換:
RestTemplate restTemplate = new RestTemplate();
GsonHttpMessageConverter jsonConverter = new GsonHttpMessageConverter();
restTemplate.getMessageConverters().add(jsonConverter);
final String url = "http://restful.test.com/users";
User[] users = restTemplate.getForObject(url, User[].class);