我使用Alamofire的GET函数从API返回这个JSON。以下是我如何使用Alamofire:
struct Params: Encodable {
let code: String
let codeType: String
}
let params = Params(code: "709532929804933", codeType: "IDENTCODE")
let headers: HTTPHeaders = [
"Authorization": "Basic xxxHIDExxx",
"Accept": "application/json"
]
AF.request("https://xxx.xx/cloudcrm/customer",
method: .get,
parameters: params,
headers: headers).validate(statusCode: 200..<300).responseJSON { response in
switch response.result {
case .success:
debugPrint(response.value as Any)
case let .failure(error):
print(error)
}
}
Print json:
{
customerData = "<zakaznik><zkznid>475301</zkznid><titul></titul><jmeno>757B746D</jmeno><prijmeni>D\U00c1RKOV\U00c1 KARTA</prijmeni><rozliseni></rozliseni><osloveniok>false</osloveniok><kontos></kontos><skupzak1_klic>DK</skupzak1_klic><skupzak2_klic>default</skupzak2_klic><cenkat_klic>1</cenkat_klic><platido>2118-07-31</platido><valid>true</valid></zakaznik>";
message = "Informace o z\U00e1kazn\U00edkovi \"D\U00c1RKOV\U00c1 KARTA 757B746D\" na\U010dteny.";
}
我试图查看JSON是否有效(https://jsonlint.com/),但它不是。有没有办法在Swift中解析这个字符串?
1条答案
按热度按时间cnh2zyt31#
是JSON。
它已经被解析了,
response.value
是一个Dictionary
,一个[String: Any]
,在你的示例中,甚至是一个[String: String]
。你打印的是
NSDictionary
的description
(或多或少是一个Swift字典),输出是OpenStep格式。请注意:"="
在key & value和";"在队伍的尽头什么告诉我这也是JSON?您在success
case中打印了它,因此它成功地将Data解析为“JSON”对象。如果你想看到你收到的实际“JSON”数据:
您应该看到它是有效的JSON。
现在,
responseJSON
已弃用,请使用Codable
和responseDecodable(of:)
。如果您仍然不想使用
Codable
: