Я работаю над приложением iOS в Swift.
Я использую RealmSwift, ObjectMapper и ObjectMapper_Realm, чтобы получить данные из файла JSON и сохранить их в Realm.До сих пор он работал нормально, но я получил массив String без извлечения ключа на том же уровне, что и другой объект, и я не знаю, как это сделать ...
Вот мой объект:
"books":
[
{
"id": 56436886,
"type": "Book",
"title": "Title of the book",
"authors": [
"Name FirstName",
]
}
]
и вот мой класс для картографии:
class Book: Object, Mappable {
// MARK: Declaration for string constants to be used to decode and also serialize.
private struct SerializationKeys {
static let id = "id"
static let type = "type"
static let title = "title"
static let authors = "authors"
}
// MARK: Properties
@objc dynamic var id: Int = 0
@objc dynamic var type: String?
@objc dynamic var title: String?
var authors = List<Author>()
// MARK: ObjectMapper Initializers
/// Map a JSON object to this class using ObjectMapper.
///
/// - parameter map: A mapping from ObjectMapper.
convenience required init?(map: Map) {
self.init()
}
// MARK: - Model meta informations
override class func primaryKey() -> String? {
return "id"
}
override class func ignoredProperties() -> [String] {
return []
}
/// Map a JSON object to this class using ObjectMapper.
///
/// - parameter map: A mapping from ObjectMapper.
public func mapping(map: Map) {
id <- map[SerializationKeys.id]
type <- map[SerializationKeys.type]
title <- map[SerializationKeys.title]
authors <- (map[SerializationKeys.authors], ListTransform<Author>())
}
}
А вот мой класс Автор:
class Author: Object, Mappable {
@objc dynamic var authorName: String?
// MARK: - Model meta informations
override class func primaryKey() -> String? {
return "authorName"
}
convenience required init?(map: Map) {
self.init()
}
func mapping(map: Map) {
self.authorName <- map
}
}
Я не знаю, как отобразить в классе Author, поэтому, когда я получаю свой объект JSON, вся моя книга сохраняется, кроме авторов ...
Спасибо за вашу помощь