2017-02-21 10 views
0

Realmを使用し、Gsonと組み合わせると、これは既知のissueと出会いました。 私はRest APIのロジックを壊していた奇妙なシリアル出力を見始めました。ExclusionStrategyとカスタムタイプアダプターの代わりにGsonを使用した領域

私はExclusionStrategyを設定し、私のモデルのそれぞれにカスタムシリアライザを書くことでそれが解決されることが分かりました。このlinkを参照してください。

しかし、将来変更される可能性の高いモデルが20以上あります。したがって、この回避策に固執すると、モデルを変更するたびにシリアライザを変更しなければならないことを意味します。これは、RealmGsonを一緒に使用すると思います。

私の質問です:これらの制限を回避する別の既知の回避策がありますか?それとも私が持っている唯一の選択肢ですか?

+0

ExclusionStrategyは、旧バージョンのRealmでのみ必要であることに注意してください。最新バージョン(2.3.1)を使用している場合、これはもう必要ありません。 –

答えて

0

はい。 ExclusionStrategyを使用し、GSONに渡す前にrealm.copyFromRealm(managedRealmObject);を使用してください。

ExclusionStrategy exclusionStrategy = new ExclusionStrategy() { 
     @Override 
     public boolean shouldSkipField(FieldAttributes f) { 
      return f.getDeclaringClass().equals(RealmObject.class); 
     } 

     @Override 
     public boolean shouldSkipClass(Class<?> clazz) { 
      return false; 
     } 
    }; 

    Gson gson = new GsonBuilder() 
      .setExclusionStrategies(exclusionStrategy) 
      .create(); 

    String json = gson.toJson(realm.copyFromRealm(myObject)); 
関連する問題