我正在swift 4中试用新的JSONDecoder(),并试图解析以下flickr API响应:(https://API.flickr.com/services/rest/?api_key=api_key&method=flickr.photos.search&format=json&per_page=25&text=hello&nojsonCallback=1).但是,我得到一个错误,说“错误处理json数据:数据不能被读取,因为它的格式不正确。”然而,数据似乎是在正确的格式对我。我做错什么了吗?
let dataTask = session.dataTask(with: urlRequest) { (data, response, error) in
if let error = error {
print("json error: \(error.localizedDescription)")
return
} else if let data = data {
print(response)
do {
let decoder = JSONDecoder()
print(data)
let flickrPhotos = try decoder.decode(FlickrImageResult.self, from: data)
} catch {
dump(data)
print("json error: \(error.localizedDescription)")
}
}
}
dataTask.resume()
我的数据模型是
struct FlickrImageResult : Codable {
var photos : FlickrPhoto? = nil
}
struct FlickrPhoto : Codable {
var photo : [FlickrURLs]? = nil
}
struct FlickrURLs: Codable {
var id : String? = nil
var owner: String? = nil
var secret: String? = nil
var server: String? = nil
var farm: String? = nil
}
我将请求的图像数更改为2,打印出的数据返回可选({“photos”:{“page”:1,“pages”:120197,“perpage”:2,“total”:“240393”,“photo”:[{“id”:“36729752762”,“owner”:“152440263@N02”,“secret”:“E62BA3E18B”,“server”:“4432”,“farm”:5,“title”:“Hello there”,“ispublic”:1,“isfriend”:0,“isfamily”:0},{“id”:“36729384952”,“
您的模型的唯一问题是farm
实际上是一个int
。以下是您的模型的更完整版本,它与文档(https://www.flickr.com/services/api/flickr.photos.search.html)一致:
struct FlickrImageResult: Codable {
let photos : FlickrPagedImageResult?
let stat: String
}
struct FlickrPagedImageResult: Codable {
let photo : [FlickrURLs]
let page: Int
let pages: Int
let perpage: Int
let total: String
}
struct FlickrURLs: Codable {
let id : String
let owner: String
let secret: String
let server: String
let farm: Int
// let title: String
// If needed, camel-case and use CodingKeys enum
//let ispublic: Int
//let isfriend: Int
//let isfamily: Int
}
let jsonData = """
{
"photos": {
"page": 1,
"pages": 13651,
"perpage": 25,
"total": "341263",
"photo": [
{
"id": "36499638920",
"owner": "55126206@N07",
"secret": "7e82dee0ba",
"server": "4346",
"farm": 5,
"title": "[BREATHE]-Ririko,Sayaka&Chiyoko",
"ispublic": 1,
"isfriend": 0,
"isfamily": 0
},
{
"id": "36724435032",
"owner": "92807782@N04",
"secret": "6d830d4a75",
"server": "4354",
"farm": 5,
"title": "Serendipity Designs @ SWANK August 2017",
"ispublic": 1,
"isfriend": 0,
"isfamily": 0
},
{
"id": "36087089863",
"owner": "152685136@N08",
"secret": "a4a3f2fe0a",
"server": "4365",
"farm": 5,
"title": "Hello Kitty Scooter",
"ispublic": 1,
"isfriend": 0,
"isfamily": 0
},
{
"id": "36086949593",
"owner": "151818203@N02",
"secret": "fc1207d373",
"server": "4334",
"farm": 5,
"title": "Hip, Hip! It's Chip!",
"ispublic": 1,
"isfriend": 0,
"isfamily": 0
},
{
"id": "36498504410",
"owner": "148300038@N02",
"secret": "5c7f6ff3e1",
"server": "4391",
"farm": 5,
"title": "Hello Kotti",
"ispublic": 1,
"isfriend": 0,
"isfamily": 0
}
]
},
"stat": "ok"
}
""".data(using: .utf8)!
let flickrPhotos = try! JSONDecoder().decode(FlickrImageResult.self, from: jsonData)
print(flickrPhotos)
p.s:消息处理json数据时出错:无法读取数据,因为它的格式不正确。
是本地化的错误消息,请使用print(错误)
而不是print(错误localizeddescription)
获取所有可用的错误数据(在您的情况下,它将显示尝试解码场密钥时出现问题)。
我已经创建了服务'A',它需要由服务'B'通过使用假客户端调用,如果服务'A'由于某些验证而失败,那么服务'A'会发送回包含以下详细信息的错误响应,(1)http状态代码(2)错误消息(3)自定义错误映射,它包含自定义错误代码和它们的错误消息,例如<“EMP-1001”,“无效雇员ID”> 请就此提供一些建议
我试图训练我的模型,我有csv文件和一个gz文件,这是早些时候生成的。我得到这个错误如下所述,不确定是什么错误。 霉菌代码:
代码 说明 102 视频列表为空 103 无效的视频列表 108 列表模式视频信息加载失败 109 视频信息加载失败 110 视频审核中 111 用户流量已用尽 112 用户账号被锁 114 视频被屏蔽或删除 115 视频信息错误 116 无视频文件 205 当前域名不允许播放 207 授权播放验证未通过 304 测速失败 305 切换清晰度失败 306 播放中播放失败
我正在尝试解密服务器上的加密字符串。但当我解密的时候,我发现了错误。我需要成功解密字符串。我们正在使用AES 256 cbc 当我使用aes/cbc/nopadding时,我能够解密,但是文本中附加了垃圾字符。 解密A:2:{S:5:“电子邮件”;S:24:“afroj.alam@broc.com”;S:8:“密码”;S:7:“test123”;} 实际字符串A:2:{S:5:“email”;S:
sdk v1.1.4 版本重构优化了错误返回信息,你可以通过如下方式对错误信息进行判断。 wx.BaaS.login().then(res => { console.log('登录成功') }, err => { if (err.code === 600) { console.log('网络已断开') } if (err.code === 601) { console.
问题内容: 当我尝试从http://api-v3.deezer.com/1.0/search/album/?q=beethoven&index=2&nb_items=2&output=json使用以下方法获取JSON 时: 我得到: 但是使用http://search.twitter.com/search.json?q=beethoven&callback=?&count=5的JSON 可以正常工