我正在开发一个项目来学习如何解析JSON。我试图将JSON解析为struct。我试图使用接下来的代码来完成它,但我得到了以下错误:
无法读取数据,因为它的格式不正确。
我做错了什么?我也尝试使用Alamofire,但我没有找到方法来解析它的结构。
func getData(){
let gitUrl = URL(string: "http://95.46.99.250:9095/api/v1/institution-categories")
URLSession.shared.dataTask(with: gitUrl!) { (data, response
, error) in
let data = data
print(data)
do {
let decoder = JSONDecoder()
let gitData = try decoder.decode([Root].self, from: data!)
} catch let err {
print("\nErr", err.localizedDescription)
}
}.resume()
}
字符串
Struct
struct Root: Codable {
let data: [InnerItem]
}
struct InnerItem:Codable {
let id: Int?
let image: String?
let name: String?
private enum CodingKeys : String, CodingKey {
case id = "id", image = "image", name = "name"
}
}
型
JSON
{
"data": [
{
"id": 1,
"name": "Пабы и бары",
"image": "http://95.46.99.250:9095/storage/photos/[email protected]"
},
{
"id": 2,
"name": "Кафе",
"image": "http://95.46.99.250:9095/storage/photos/[email protected]"
},
{
"id": 3,
"name": "Ночной клуб",
"image": "http://95.46.99.250:9095/storage/photos/0201f7523bc2028f174710b51379e432.png"
},
{
"id": 4,
"name": "Ресторан",
"image": "http://95.46.99.250:9095/storage/photos/[email protected]"
},
{
"id": 5,
"name": "Караоке-клуб",
"image": "http://95.46.99.250:9095/storage/photos/microphone.png"
},
{
"id": 6,
"name": "Суши-бар",
"image": "http://95.46.99.250:9095/storage/photos/sushi.png"
},
{
"id": 7,
"name": "Пиццерии",
"image": "http://95.46.99.250:9095/storage/photos/pizza.png"
},
{
"id": 8,
"name": "Кальянная",
"image": "http://95.46.99.250:9095/storage/photos/c111d1e5ad6b90b61ac36836d220ebba.png"
},
{
"id": 9,
"name": "Общая",
"image": "http://95.46.99.250:9095/storage/photos/Group [email protected]"
}
]
}
型
3条答案
按热度按时间roejwanj1#
排除
coding
/decoding
错误当使用
codable
s时,不要打印.localizedDescription
,而是尝试打印error
本身!这样编译器就可以准确地描述问题所在!字符串
在您的案例中
它将指出:
Array
,但找到的却是Dictionary
。所以你跟着这个问题,看看你应该替换:
型
使用:
型
htzpubme2#
试试这个
字符串
遍历数据
型
oug3syen3#
对我来说,“数据无法读取,因为它不是在正确的格式。”的问题是与特定的XLSX文件,我试图使用。我在Excel中创建了一个新的XLSX文件,并将其添加到我的项目和工作!然后我只是粘贴数据,我需要从文件,给我的错误到新创建的XLSX文件,它解析!
字符串