之前一切正常,但现在得到错误,如
错误域= NSCocoaErrorDomain代码= 3840" JSON文本不是以数组或对象开头,而是选项允许未设置片段。" UserInfo = {NSDebugDescription = JSON文本不以数组或对象开头,并且选项允许未设置片段。}
我的JSON解析代码就像
func JSONParseArray(jsonString: String) -> [AnyObject] {
if let data = jsonString.dataUsingEncoding(NSUTF8StringEncoding) {
if let array = (try? NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0))) as? [AnyObject] {
return array
}
}
print(strings)
return [AnyObject]()
}
有什么问题?或者我做错了什么?
我的JSOn字符串值是
http://test.domain.in/transfer/jsp/wsCall.jsp?dataFormat=JSON&requestData= {"的requestId":" 1447417335364""的RequestType":" LOGIN""的channelID& #34;:" MOBILE""的clientId":" RG""的groupId”:”测试”,”登录ID":&# 34; test@test.com","密码":" cFzc3dvcmRAMA =="" noofAttempts":" 1&#34 ;, " ip地址":" 8ADCD445-A4F6-49EA-A344-35313A0AD""键":" MzQM3OTA4NDgxMjY4bWlsbGVy"}
答案 0 :(得分:0)
request.setValue("text/json", forKey: "Content-Type")
答案 1 :(得分:0)
你的回答的第一个字母似乎是h,第二个是t,第三个是t,第四个是p。这不是有效的JSON。
顺便说一句。永远不会将字符串传递给应该解析JSON的方法。沿线有人向你发送了NSData。将NSData传递给JSON解析器不变。这样可以避免浪费内存,浪费时间,浪费电池电量和避免不必要的错误。
顺便说一句。对于一个可能失败的方法,返回除可选项之外的任何东西都是非常糟糕的样式。特别是因为你实际上在错误的情况下返回一个空数组,这个数组无法与正确解析并返回空错误的[]输入区分开来。因此,您正在丢失所有错误检查。