Итак.Прежде всего: ваш JSON
не является действительным JSON
и ваш URL (конечно) не работает.Я предполагаю, что ваш JSON выглядит так:
{
"name": ["India",
"USA",
"China"
]
}
Если это так, вы можете изменить свой код таким образом, и он будет работать, как и ожидалось:
let jsonString = """
{
"name": ["India",
"USA",
"China"
]
}
"""
let userData = jsonString.data(using: .utf8)!
do {
let values = try JSONSerialization.jsonObject(with: userData) as! [String: Any]
print(values)
print("Parse success")
} catch let error as NSError
{
print(error)
}
Как один уже упомянутый комментарий: Попробуйтеизбегать NS
типов в Swift, если это действительно не нужно.
Надеюсь, это поможет.
И, кроме того: как правило, загрузка ответа от синхронизации с сервером - это плохая практика.Вы должны использовать URLSession
и делать это асинхронно.Но это другое дело ...
Таким образом, полный пример для вашего варианта использования будет выглядеть так:
let url = URL(string: "http://localhost/country.php")!
let userData = try! Data(contentsOf: url)
do {
let values = try JSONSerialization.jsonObject(with: userData) as! [String: Any]
print(values)
print("Parse success")
} catch let error as NSError
{
print(error)
}
Я принудительно разверну в приведенном выше примере.Я не рекомендую это.Сэкономьте, распакуйте ваши опционы, это лучший способ.