Swift - Как я могу декодировать строковый ответ json в строку? - PullRequest
0 голосов
/ 18 июня 2020

Почему это не работает?

let jsonResponse = " \"This is a response\" "

let str = try! JSONDecoder().decode(String.self, from: jsonResponse)

print(str)

ошибка: невозможно преобразовать значение типа String в ожидаемый тип аргумента Data

На других языках, например javascript или java / kotlin, преобразовать этот ответ в строку довольно просто.

JS

const s = JSON.parse(" \"This is a response\" ")

Kotlin

val s = Gson().fromJson(String::class.java, " \"This is a response\" ")

Но быстро , это не кажется таким простым. Это правильный ответ json? Я предположил, что двойные кавычки сделают его действительным объектом json.

Заранее спасибо.

1 Ответ

2 голосов
/ 18 июня 2020

Вам нужно сначала преобразовать String в Data, чтобы декодировать его, используя JSONDecoder:

let jsonResponse = " \"This is a response\" "
let data         = Data(jsonResponse.utf8)
let str          = try! JSONDecoder().decode(String.self, from: data)
print(str)
...