#json #swift #string #cookies
#json #swift #строка #файлы cookie
Вопрос:
("Global_Data"): {
Created = 574049501;
Domain = "";
Expires = "2019-03-19 02:11:40 0000";
Name = "Data";
Path = "/";
Value = "{"countryISO":"US","cultureCode":"en-GB","currencyCode":"USD","apiVersion":"2.1.4"};
Version = 1;
}
При получении данных cookie из webview я получил значение => в виде строки
зная, что некоторые символы представляют собой специальные символы или буквы.
Как я могу преобразовать ее в формат JSON. Спасибо
«{«countryISO»:»US»,»cultureCode»:»en-GB»,»currencyCode»:»USD»,»apiVersion»:»2.1.4″}»
Ответ №1:
Ваша строка уже является строкой JSON, вам просто нужно удалить из нее кодировку в процентах, создать пользовательскую структуру, соответствующую Decodable, и все готово:
struct Root: Decodable {
let countryISO, cultureCode, currencyCode, apiVersion: String
}
let string = "{"countryISO":"US","cultureCode":"en-GB","currencyCode":"USD","apiVersion":"2.1.4"}"
let json = string.removingPercentEncoding ?? ""
«{«countryISO»: «US», «cultureCode»: «en-GB», «currencyCode»:»USD», «apiVersion»: «2.1.4»}»
do {
let root = try JSONDecoder().decode(Root.self, from: Data(json.utf8))
print(root.countryISO) // "US"
print(root.cultureCode) // "en-GB"
print(root.currencyCode) // "USD"
print(root.apiVersion) // "2.1.4"
} catch {
print(error)
}