- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如果我将 ObjectMapper 与普通的 swift 类一起使用,我能够创建 JSON 对象,但是当我将它与 Realm 类模型一起使用时,程序会崩溃。我试图解决它(检查对象是否存在,然后使用覆盖 primaryKey 方法但没有帮助)。我使用了 StackOverFlow 的 ListTransform 类,它似乎工作正常。 Xcode 没有提供任何关于异常终止的特定信息,以便我可以进行更多调试。其他 stackoverflow 帖子没有帮助。
class UserResponse: Object, Mappable {
// MARK: Properties
//
var item = List<Item>()
dynamic var itemPurchaseDate = NSDate()
required convenience init?(_ map: Map) {
self.init()
}
func mapping(map: Map) {
item <- (map["item"], ListTransform<Item>())
itemPurchaseDate <- (map["itemPurchaseDate"], ISO8601DateTransform())
}
}
class ListTransform<T:RealmSwift.Object where T:Mappable> : TransformType {
typealias Object = List<T>
typealias JSON = [AnyObject]
let mapper = Mapper<T>()
func transformFromJSON(value: AnyObject?) -> Object? {
let results = List<T>()
if let value = value as? [AnyObject] {
for json in value {
if let obj = mapper.map(json) {
results.append(obj)
}
}
}
return results
}
func transformToJSON(value: Object?) -> JSON? {
var results = [AnyObject]()
if let value = value {
for obj in value {
let json = mapper.toJSON(obj)
results.append(json)
}
}
return results
}
}
class Item: Object, Mappable {
// MARK: Properties
//
dynamic var itemName = ""
required convenience init?(_ map: Map) {
self.init()
}
// Mapping between ObjectMapper (JSON) and the model properties
//
func mapping(map: Map) {
itemName <- map["itemName"]
}
}
class RealmManager {
// returns a dictionary which represents give mappable object
//
func jsonFormat<N: Mappable>(object: N) -> [String: AnyObject] {
return Mapper().toJSON(object)
}
func uploadDataToBackend(someObject: UserResponse) {
let postData = jsonFormat(someObject)
print(postData)
}
}
-----------------------------------------
Program crash on following lines:
1. In Item class, program crash on line itemName <- map["itemName"]
2. If I comment above line , then I get crash on itemPurchaseDate <- (map["itemPurchaseDate "], ISO8601DateTransform())
另请注意,当 Item 没有任何内容时,第一行会执行,但当它确实有数据时,它只会崩溃。 如果您需要更多信息,请告诉我
最佳答案
当使用 ObjectMapper 将 Realm 模型序列化为 JSON 时,您需要在写入事务中执行。或者使用 init(value:)
从 Realm 中分离对象.因为 ObjectMapper 即使在序列化时也会为模型的属性赋值。它只是分配相同的值,它不会修改,但 Realm 不允许在没有事务的情况下分配任何值。
Note: Generating a JSON string of a Realm Object using ObjectMappers'
toJSON
function only works within a Realm write transaction. This is caused because ObjectMapper uses theinout
flag in its mapping functions (<-
) which are used both for serializing and deserializing. Realm detects the flag and forces thetoJSON
function to be called within a write block even though the objects are not being modified.
另请参阅 ObjectMapper 文档中的 ObjectMapper + Realm 部分。
https://github.com/Hearst-DD/ObjectMapper#objectmapper--realm
关于swift - 在 Swift 中将 ObjectMapper 与 Realm 一起使用时程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37995133/
这是我的设置: 带有自定义 MessageConverter 的 ObjectMapper 的 RestTemplate,它具有一些反序列化功能和问题处理程序 (Jackson Fasterxml 2
我们有一个基于 Spring 的应用程序,并且我们为 Jackson ObjectMapper 类定义了一个单例 bean。 @Bean(name = "jacksonObjectMapper") p
当依赖项中的 jar 中定义了另一个对象映射器时,如何使我的对象映射器工作? 我正在尝试使用 Swagger与 Jersey 2在 Jetty 下运行。问题是,一旦我将 Swagger JAX-RX
我刚刚更新到 Xcode 10.1 Swift 版本 4.2.1 我有几个构建错误: Invalid redeclaration of ' 3.3' $ pod 'ObjectMapper', '3.
您好,我是 IOS 开发的新手。我正在创建一个小应用程序。我正在尝试导入 ObjectMapper 但它没有找到任何模块。我已经安装了 pod。我的 pod 文件看起来像: target 'Sam
ObjectMapper 忽略字段大小写 核心代码: ObjectMapper mapper = new ObjectMapper(); mapper.configure(Deser
我加载一个资源文件json与文本格式 { "sources": [{ "prop1": "1", "prop2": "2" },
我有以下类(class): public class Car{ private String id; private String name; public Car() { } public Car(
使用 ObjectMapper 解析通用对象时出现错误这是我的类(class): class BaseResponse: NSObject, Mappable { var isSuccess:
我正在将印地语存储在数据库中。在我的 fetch 方法中,我使用 objectMapper 它将印地语字体转换为特殊字符。没有objectmapper它工作正常。 @CrossOrigin @
我正在尝试使用 Jackson ObjectMappper 将我的 Java POJO 转换为 Map。但是,在转换时,日期会更改为字符串。 这是我的 POJO: public class Sampl
我将日期传递为 "scoreTimestamp": "2015-04-15T10:00:00.000Z",并希望将此 json 作为字符串保存在数据库中,因此使用方法 ObjectMapper ob
使用 ObjectMapper 解析通用对象时出现错误这是我的类(class): class BaseResponse: NSObject, Mappable { var isSuccess:
我遇到了一个我不知道如何解决的问题。 当我尝试将此 JSON 映射到 User 对象时,它失败了: SwiftyJSON 在“2.3.3” JSON: { "results":[
我有一个自定义的 ObjectMapper 类。我想根据数据将元素映射到不同的对象类型。我已经实现了如下逻辑。但它没有给我值,只是 null。 class FeedObject : Object, M
我正在从服务器解析 json。我在 json 中获得了 4 个值,因此我创建了模型类 class PriceData: Mappable { var buy: Double? var sell: Do
我有这个映射器: import Foundation import ObjectMapper class Article: Mappable { var id: Int! var na
我有下面的一段代码,可以将带注释的 Java 对象转换为 Json 字符串。 try { String jsonString = mapper.writeValueAsStr
这个问题在这里已经有了答案: Jackson - Required property? (4 个答案) 关闭 7 年前。 假设我有这样的 json,我想将它反序列化为一个名为 SubscriberP
我有一个 JSON,我将其解析为结果对象列表。此对象包含 5 个字符串字段,称为 photo1、photo2 等。(基于 JSON)是否可以将它们直接读入列表字段? JSON 喜欢: { "E
我是一名优秀的程序员,十分优秀!