基本上,我具有以下功能来响应POST请求并显示JSON数据。
我只想通过打印del_tex的值来打印此数据的结果
在ViewController的顶部,我将变量结构定义为:
var structure = [NotesStructure]()
NotesStructure是接收到的JSON的结构:
import UIKit
struct NotesStructure: Codable {
let del_tex: String
}
以下是获取和处理数据的JSON函数。我尝试打印del_tex的值,但得到结构无值del_tex
private func fetchJSON() {
guard let url = URL(string: "https://example.com/example/example"),
let value = driverName.addingPercentEncoding(withAllowedCharacters: .urlQueryValueAllowed)
else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = "person=\(driverName)&serial=\(peronNum)".data(using: .utf8)
URLSession.shared.dataTask(with: request) { data, _, error in
guard let data = data else { return }
do {
self.structure = try JSONDecoder().decode([NotesStructure].self,from:data)
DispatchQueue.main.async {
print(self.structure.del_tex)
}
}
catch {
print(error)
}
}.resume()
}
答案 0 :(得分:1)
您的结果是一个数组,因此您首先需要访问该数组,或者只有第一个元素
do {
self.structure = try JSONDecoder().decode([NotesStructure].self,from:data)
if let first = self.structure.first {
print(first.del_tex)
}
...
或打印整个数组
do {
self.structure = try JSONDecoder().decode([NotesStructure].self,from:data)
for item in self.structure {
print(item.del_tex)
}
...