作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有如下所示的 json 数据:
{
"balance": {
"pointsEarned": 3,
"pointsAvailable": 3,
"pointsOnHold": 0,
"pointsConsumed": 0,
"nextReward": 6
}
}
我正在尝试映射“平衡”以便获得其他值:
class AccountBalance: Mappable {
var balance: Dictionary<String, AnyObject>?
var pointsAvailable: Int?
required init?(_ map: Map) {
}
func mapping(map: Map) {
balance <- map["balance.value"]
pointsAvailable <- map ["pointsAvailable"]
}
}
根据objectMapper github page它是这样做的:
ObjectMapper 支持键内的点符号,以便轻松映射嵌套对象。给定以下 JSON 字符串:
"distance" : {
"text" : "102 ft",
"value" : 31
}
您可以按如下方式访问嵌套对象:
func mapping(map: Map) {
distance <- map["distance.value"]
}
每当我尝试访问“余额”时,我都会得到一个零。知道我可能做错了什么吗?
最佳答案
请注意,在您链接到的示例中,distance
有一个 value
属性,可以使用 map["distance.value"]
:
"distance" : {
"text" : "102 ft",
"value" : 31
}
在您的示例中,balance
没有名为value
的子字段,因此 map["balance.value"]
将失败。
使用 map["balance"]
将 balance
变量映射到字典:
class AccountBalance: Mappable {
var balance: Dictionary<String, AnyObject>?
var pointsAvailable: Int?
required init?(_ map: Map) {
}
func mapping(map: Map) {
balance <- map["balance"]
pointsAvailable <- map ["pointsAvailable"]
}
}
关于ios - 如何在 ObjectMapper 中映射 JSON 字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38339747/
我是一名优秀的程序员,十分优秀!