В чем разница между использованием JSONSerialization и JSONDecoder в Swift? - PullRequest
0 голосов
/ 13 октября 2019

В чем разница между использованием JSONSerialization и JSONDecoder в swift при преобразовании JSON в swift модель? Кажется, что они делают ту же работу. Если они это сделают, то когда что использовать? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Apple предоставила JSONDecoder, который является огромным облегчением в swift4 и далее. Мы можем декодировать JSON в одну строку. например,

{// sample from quicktype app online
"greeting": "Welcome to quicktype!",
"instructions": [
"Type or paste JSON here",
"Or choose a sample above",
"quicktype will generate code in your",
"chosen language to parse the sample data"
 ]
}
// MARK: - Welcome
struct Welcome: Codable {
let greeting: String
let instructions: [String]
}
//   let welcome = try? newJSONDecoder().decode(Welcome.self, from: jsonData)

Здесь приветствуется структура, соответствующая кодируемому протоколу.

Если вы хотите проанализировать JSON вручную вместо использования Codable , в iOS есть встроенная альтернатива, называемая JSONSerialization. Но я думаю, что все хотели бы использовать JSONDecoder. А также quicktype создает классы json модели или структуру для u бесплатно . Проверь себя.

0 голосов
/ 14 октября 2019

Используйте JSONDecoder!

Если я хорошо помню, в Xcode 9 появился JSONDecoder с Swift4. Чище и намного эффективнее кодировать и декодировать JSON. Для этого ваш Swift класс должен соответствовать Decodable Protocol.

Сериализация JSON - это Old School. (Как Objective-C)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...