SWIFT 4错误的JSON数组解析

我有这样的JSON:SWIFT 4错误的JSON数组解析

{"result":0,"data":[{\"ID":7,"TITLE":"123"},{\"ID":8,"TITLE":"123"}]} 

我有这样的结构:

struct ResponseResult: Decodable { 

let result: Int

let data: [IdResponseResult]

}

struct IdResponseResult: Decodable {

let ID: Int

let TITLE: String

}

所以,当我运行这样的请求:

Alamofire.request("https://xxx.xxx.xxx",headers:headers).responseJSON { response in 

if let json = response.data {

let decoder = JSONDecoder()

let result = try? decoder.decode(ResponseResult.self, from: json)

print(response.value)

completion(result)

}

}

and print response.value我得到这个:

data =  (

{

"ID" = 7;

TITLE = 123;

},

{

"ID" = 8;

TITLE = 123;

}

);

result = 0;

}

我无法解析它。我该如何解决它?

回答:

解码失败由你定义TITLE:String的结构resp2

struct resp2: Decodable { 

let ID: Int

let TITLE: String

}

引起的,但在JSON你有一个Int"TITLE":123。 如果您真的想要String(有道理,因为是“标题”),您可能需要修复服务器端。


编辑:

我想能够解码的,因为它是现在,我能够恢复您的结构,你可以检查与:

let string = "{\"result\": 0,\"data\": [{\"ID\": 7,\"TITLE\": \"123\"}, {\"ID\": 8,\"TITLE\": \"123\"}]}" 

let data = string.data(using: .utf8)

do {

let decoder = JSONDecoder()

let result = try? decoder.decode(ResponseResult.self, from: data!)

print(result?.data.first?.TITLE ?? "") // 123

} catch _ {

}

那么我想,必须有当你从服务接收到数据时会变得很奇怪。

以上是 SWIFT 4错误的JSON数组解析 的全部内容, 来源链接: utcz.com/qa/262246.html

回到顶部