如何在序列化过程中排除 ObjectMapper 中的字段?
How to exclude fields in ObjectMapper during serialization?
所以我有一个简单的 class 如下所示:
class User: NSObject {
var name = ""
var phoneNumber = ""
override func mapping(map: Map) {
super.mapping(map)
name <- map["name"]
phoneNumber <- map["phoneNumber"]
}
}
这在将包含这些字段的 JSON
响应转换为对象时效果很好。但是我想在序列化回 JSON
时排除一个字段。我怎样才能做到这一点?假设我只想发送 name
而忽略 phoneNumber
。这可能吗?似乎是一个非常合理的用例,但我还没有设法找到解决方案。
是的,这是可能的,您可以使用 MappingType
枚举来处理这个问题。它有两个值 FromJSON
和 ToJSON
,您可以使用它们来创建映射对象的逻辑。
override func mapping(map: Map) {
super.mapping(map)
if map.mappingType == MappingType.FromJSON {
name <- map["name"]
phoneNumber <- map["phoneNumber"]
} else {
name <- map["name"]
}
}
所以我有一个简单的 class 如下所示:
class User: NSObject {
var name = ""
var phoneNumber = ""
override func mapping(map: Map) {
super.mapping(map)
name <- map["name"]
phoneNumber <- map["phoneNumber"]
}
}
这在将包含这些字段的 JSON
响应转换为对象时效果很好。但是我想在序列化回 JSON
时排除一个字段。我怎样才能做到这一点?假设我只想发送 name
而忽略 phoneNumber
。这可能吗?似乎是一个非常合理的用例,但我还没有设法找到解决方案。
是的,这是可能的,您可以使用 MappingType
枚举来处理这个问题。它有两个值 FromJSON
和 ToJSON
,您可以使用它们来创建映射对象的逻辑。
override func mapping(map: Map) {
super.mapping(map)
if map.mappingType == MappingType.FromJSON {
name <- map["name"]
phoneNumber <- map["phoneNumber"]
} else {
name <- map["name"]
}
}