Ваша строка уже является строкой JSON, вам просто нужно удалить из нее процентную кодировку, создать собственную структуру, соответствующую Decodable, и все готово:
struct Root: Decodable {
let countryISO, cultureCode, currencyCode, apiVersion: String
}
let string = "%7B%22countryISO%22%3A%22US%22%2C%22cultureCode%22%3A%22en-GB%22%2C%22currencyCode%22%3A%22USD%22%2C%22apiVersion%22%3A%222.1.4%22%7D"
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)
}