2017-08-20 69 views
0

我需要解析從外部系統傳入的json。 這裏JSON例如:領域:另一個地圖內的字段映射爲RealmObject

{ 
    "address": "My address", 
    "contacts": "My contacts", 
    "exchangeRatesMap": { 
     "CHF": { 
      "field1": "7.103", 
      "field2": "11.003" 

     }, 
     "EUR": { 
      "field1": "90.123", 
      "field2": "1.003" 
     }, 
     "USD": { 
      "field1": "0.103", 
      "field2": "20.123" 

     } 
    }, 
    "name": "Name of organization", 
    "id": 1 
} 

至於結果,我在我的Android應用程序創建Java POJO(未境界):

public class ExchangeRate { 
    private int id; 
     private String name; 
     private String address; 
     private String contacts; 
     private Map<String, Map<String, String>> exchangeRatesMap = new HashMap<String, Map<String, String>>(); 

    } 

而且它的做工精細。好。

現在我需要將Java POJO遷移到Realm Object。

問: 如何對象ExchangeRates將被看成RealmObject

+0

這些國家是明確的還是動態的?如同,這些國家是否會不時變化?另外,你需要以某種方式查詢它們嗎? –

+0

我編輯我的帖子。國家數量是動態的。明天可以添加新的例如「AUS」。但是國家的領域總是2(場1,場2)。查詢(示例):Id = 1的組織獲得國家「USD」的所有字段。結果將是0.103和20.123。 – lmdic

回答

1

境界不支持地圖,但(見https://github.com/realm/realm-java/issues/759),但你可以手工做這樣的事情把它轉換成一個列表:

public class ExchangeRateItem extends RealmObject { 
    public String key; 
    public double field1; 
    public double field2; 

}

public class ExchangeRate { 
    private int id; 
    private String name; 
    private String address; 
    private String contacts; 
    private RealmList<ExchangeRateItem> exchangeRates; 
} 

您需要找到一種將ExchangeRate塊轉換爲一個對象的方法。這將取決於您使用的是哪種JSON解串器,或者您是否直接使用JSON。

相關問題