Swift декодируемый с неизвестным ключом кодирования и значением - PullRequest
0 голосов
/ 04 ноября 2018

Я хочу декодировать следующий объект с сервера

{"USD":6385.74,"JPY":715249.73,"EUR":5582.36}

но я хочу использовать декодируемую структуру с неизвестным ключом и значением. Это возможно?

С уважением,

Спирос

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Когда я работаю с JSON, которые не полностью известны (так как я знаю все возможные ключи и нуждаюсь в них все), я использовал библиотеку SwiftyJSON: https://github.com/SwiftyJSON/SwiftyJSON

С ним гораздо проще работать, чем со встроенным декодером JSON

в вашем случае это будет:

var jsonString = "{\"USD\":6385.74,\"JPY\":715249.73,\"EUR\":5582.36}"
let json = JSON(parseJSON: jsonString)

тогда вы можете делать кучу вещей, таких как перебор ключей

for (key, value) in json {
    if let currency = key.string {
        print (currency,value)
    }
}

Ознакомьтесь с документацией в https://github.com/SwiftyJSON/SwiftyJSON

0 голосов
/ 04 ноября 2018

Вы можете попробовать

let res = try? JSONDecoder().decode([String:Double].self,from:data)
print(res["USD"])

, что позволит вам декодировать любую клавишу

...