如何检查以下响应中是不是存在数据密钥?
Posted
技术标签:
【中文标题】如何检查以下响应中是不是存在数据密钥?【英文标题】:How to check data key is present in below response?如何检查以下响应中是否存在数据密钥? 【发布时间】:2016-07-14 07:29:03 【问题描述】:我在 swift 中使用 ObjectMapper.framework 并成功映射了所有值。那是我的代码
class CompetitionListModel: Mappable
var active: Int?
var channel: String?
var competition_type_id: Int?
var country_id: Int?
var created_at: [String: String]?
var ends_at: String?
var id: Int?
var name: String?
var logo: String?
var order: Int?
var parent: Int?
var updated_at: String?
var data: [AnyObject]?
required init?(_ map: Map)
mapping(map)
func mapping(map: Map)
active <- map["active"]
channel <- map["channel"]
competition_type_id <- map["competition_type_id"]
id <- map["id"]
country_id <- map["country_id"]
created_at <- map["created_at"]
ends_at <- map["ends_at"]
name <- map["name"]
logo <- map["logo"]
order <- map["order"]
parent <- map["parent"]
updated_at <- map["updated_at"]
data <- map["data"]
这是我映射的响应
active = 1;
channel = fieldhockey;
"competition_type_id" = 2;
"country_id" = 2;
"created_at" = "2014-09-19T14:45:43";
"ends_at" = "2099-09-19T00:00:00";
id = 31;
logo = "cf78a0a5-9ee2-4419-87e7-90b2eacf6ff5.png";
name = Fieldhockey;
order = "-2";
parent = 0;
"updated_at" = "2015-09-10T09:30:33";
,
active = 0;
channel = "fh-eurohockey-u18m-championship2";
"competition_type_id" = 2;
"country_id" = 2;
"created_at" = "2015-07-02T18:03:50";
data =
;
"ends_at" = "2099-12-31T00:00:00";
id = 112;
logo = "a19945fd-a0db-485f-809d-d6078e7fbfe8.jpg";
name = "EuroHockey U18 Championship II, Boys, 2015";
order = "-2";
parent = 31;
"updated_at" = "2015-09-10T09:26:56";
,
我通过这段代码得到这个值
var arrOperation: [CompetitionListModel] = []
并由此从 arrOperation 中获取价值 打印(self.arrOperation[0].data)
但是您可以在响应中看到数据键在此响应中有时不存在,有时它存在。所以我必须检查数据键是否存在,但我也映射了这个始终存在于模型类中的键。所以我正在检查这段代码
if let keyExists = self.arrOperation[indexPath.row].data
print("key is present")
else
print("key is not present")
但是数据键总是出现在模型类中,它的打印值为 nil。所以请告诉我如何识别数据的键名是否存在于数组中。
【问题讨论】:
【参考方案1】:for dict in self.arrOperation
if let keyExists = dict["data"]
print("key is present")
else
print("key is not present")
试试这个代码。对于我的字典,其中有一个数据键,这段代码可以正常工作
【讨论】:
self.arrOperation 也是模型类的对象,请查看我的代码,如果 let keyExists = self.arrOperation[indexPath.row].data print("key is present" ) else print("密钥不存在") 因为您使用的是简单数组,但我使用的是始终具有数据键的模型类数组。请查看我上面的代码,您将获得所有信息。 你拥有的是 NSArray 类型。将其更改为 Array以上是关于如何检查以下响应中是不是存在数据密钥?的主要内容,如果未能解决你的问题,请参考以下文章
检查 Berkeley DB C++ API 中是不是存在密钥 [关闭]