2017-05-04 5 views
0

を使用すると、次のとおりです。AndroidのレルムcreateOrUpdateAllFromJson私はserver.Fromサーバのデータ形式から&に行くのデータを処理するための領域で働いているカスタム複合キー

{ 
"results":[ 
    { 
    "unique_id":"8e54ca69-88cb-47f8-8280-f22b888cd50e", 

    "breakdown":[ 
     { 
      "entity":4, 
      "parent_unique_id":"8e54ca69-88cb-47f8-8280-f22b888cd50e", 
      //other data 
     } 
    ], 
    //many other json objects and arrays 
    }]} 

これまでに行われているもの:

エンティティとparent_unique_idに基づいて、固有の内訳データをローカルに保存または更新しています。 私は、createOrUpdateAllFromJson()メソッドを使って同じことを行う方法を探していました。ここでは、これらの一意の識別子に基づいて内訳が更新されます。私は各オブジェクトを照会し、ループして更新することで同じチェックを行うことができます。 しかし、多くのデータ(ページネーションを含む)でも、計算上効率的ではなく、時間がかかります。

私の検索でrealmにはまだcompound primary keyのサポートがなく、カスタムの複合主キーを作成しても、createOrUpdateAllFromJson()を使用してデータを更新することはできません。

マイクエリ

は、ボイラープレートコードを記述することなく、JSONから私の内訳データを更新するための任意の効率的な方法はありますか?

+0

よう

何かがレルムDbのについてのアイデアを得るためにここに参照してください - https://dzone.com/articles/realm-practical- use-in-android –

+0

リンクのためにありがとうございます。私はかなり多くの分野ですでに進んでいます。 しかし、私は大きなjsonデータといくつかのユニークなデータセットを扱うことに関して私の質問はかなり具体的だと思います。そして、私が知る必要があるのは、他の誰かが同じ問題に直面しているかどうかであり、効率的な方法です。 – sbr1308

+0

ええ、私は今レルムを学び始めました。だから、私はこれらの問題に直面しない:( –

答えて

0

すでにJson構造を持っていれば、それを操作して、すべてをRealmに解析します。あなたのレルムのモデルクラスで定義されていない任意のJSONのプロパティを無視しているレルムを忘れないでください:

// Create compound key 
JSONArray arr = getResults(); 
for (int i = 0; i < arr.length(); i++) { 
    JSONObject obj = arr.getJSONObject(i); 
    JSONObject breakdown = obj.getJSONArray("breakdown").getJSONObject(0); 
    obj.put("id", breakdown.getLong("entity") + "-" + breakdown.getString("parent_unique_id")); 
} 
realm.createOrUpdateAllFromJSon(arr); 
+0

ええ、それは本質的に2つのループです。結果の配列内の故障の配列として。私は可能な場合はループを回避したいと思ったが、現状では、ループ。 – sbr1308

関連する問題