したがって、私はObjectMapperとRealmと一緒に使用している次のJSONを持っています。ObjectmapperはJSON内の1つの項目の配列を取得します
{
"result": [
{
"id": 20,
"types": [
"now"
],
"url": "/nl/whereto/ezrhgerigerg",
"categories": [
{
"id": 39,
"name": "Food "
},
{
"id": 21,
"name": "Varia"
}
]
},
私の問題は、アレイ内のいくつかのアイテムは、「今」と言うか、「後で」、およびその他の項目(それゆえ、どの種類の項目が指定されていない)のために空である「タイプ」からデータを取得しています。
は、私は私のマッピングで次の操作を実行しようとした:class Publication: Object, Mappable {
dynamic var id:Int = 0
var typez = List<getType>()
dynamic var url:String?
required convenience init?(_ map: Map) {
self.init()
}
override static func primaryKey() -> String? {
return "id"
}
func mapping(map: Map) {
id <- map["id"]
typez <- map["types"]
url <- map["url"]
}
}
class getType: Object, Mappable {
dynamic var text: String = ""
required convenience init?(_ map: Map) {
self.init()
}
func mapping(map: Map) {
text <- map[""]
}
}
私はレルムデータベースをチェックすると、あなたはそのtypez、作られた[のgetType]の配列を見ることができますが、それは(すべての項目に空のタイプが「今」であっても)。他の2つの項目(idとurl)がデータベースに書き込まれます。
私は間違ってデータベースに保存されません。
小さな質問:このようにして、データベースからデータを更新すると(変更のバックエンドをチェックする)、前の情報にこの情報を積み重ねるだけです。 (私のdbのこの配列の場合のみ)。これが起こるのを止める方法はありますか? – SoundShock
'mapping'関数は初期化と呼ばれるだけなので、発生しないと思います。しかし、それが起こるならば、解決策はループの前に 'typez'をクリアします。 'List'オブジェクトをクリアするには、' removeAll() 'を呼び出します。 –
これは、リストからオブジェクトを削除しますが、データベースからは削除しません。私は更新されたデータでもう一度それを埋める前にリスト内の項目を最初に(そしてデータベース)削除したいと思います。 – SoundShock