使用swift代码解析json时遇到了一些问题。
json示例
{"responce": "ok","orders": [{"id":"1"), {"id":"2"}, {"id":"3"} ]}
并且此代码正常运行
let dataArray: NSArray = jsonResult["orders"] as! NSArray
但如果我得到{"responce": "ok","orders": ""}
,我就会得到error: Could not cast value of type __NSCFConstantString (0x10c7bfc78) to NSArray (0x10c7c0470).
我可以以某种方式检查值是否为数组而不是崩溃?
答案 0 :(得分:3)
是的,您可以通过执行以下操作来检查该值是否为NSArray:
if let dataArray = jsonResult["orders"] as? NSArray {
}
如果jsonResult["orders"]
的结果是NSArray,那么将设置dataArray,你将进入if语句。
答案 1 :(得分:1)
这个错误很可能是由你从我认为的服务器不是JSON的回复中引起的,但是就像是HTML / XML响应,说无法访问服务器,或者你的查询/ post请求无效(因此该值为" NSCFConstantString")。
使用詹姆斯'回答是检查值是否为数组的一种非常好的方法,但您可能希望使用Postman等程序测试您的请求以查看他的响应,然后硬编码以便在用户端处理该错误。