当用swiftyJSON解析Swift 2.0中的JSON时获取空值
问题描述:
当我尝试从url解析json时,我得到一个空值。我错过了什么,或者应该是我正在实现简单地加载一个json值并放入一个UICollectionView
?当用swiftyJSON解析Swift 2.0中的JSON时获取空值
这是我从Web服务中获得的json。我有一个验证工具,验证它,它是正确的:
{
"status": 1,
"count": 72,
"data": [
{
"id": 818,
"name": "1. product",
"price": "155.00"
},
{
"id": 812,
"name": "2. product",
"price": "62.00"
},
{
"id": 26,
"name": "3. product",
"price": "213.00"
},
{
"id": 657,
"name": "4. product",
"price": "21.00"
},
{
"id": 347,
"name": "5. product",
"price": "57.00"
}
我需要从上面的JSON获取名称和价格值。
这是在viewDidLoad
中调用的swiftyJSON代码块。我怀疑问题在这里,但我不确定。
let json = JSON(data: products)
if let productName = json["data"][0]["name"].string {
print("Product: \(productName)")
}
答
你可以简单地通过在模型类中重写初始化函数避免JSON空字段。 当然取决于你的映射数据。如果你会得到JSON空的对象,这个构造函数将简单地替换空到默认值
例如:
override init() {
mapField1 = "" // string value
mapField2 = 0 // number value
}
关于我们的代码。你在哪里取得了JSON中的0键?这只是json["data.name"]
或json["data.price"]
+0
是的,我初始化模型类的默认值。我可能会将[0]放在错误的地方,因为我猜想我从Web服务获得的json是字典数组,并且我不擅长它。 – mehmeet43
你的代码打印什么?你能更多地展示你获得'产品'的位置吗?如果你打印'products'或'json [“data”]'会发生什么? –
它不打印任何东西,因为以print(“Product ...”开头的代码从未调用过。 – mehmeet43
您的示例中的“products”是什么类型?您可以展示更多关于如何从网络获取json的代码? –