Нет проблем с вашим кодом, ваш кодированный JSON не является дополнительным.Проблема, которую вы видите, заключается в том, что вы печатаете возвращаемое значение инициализатора String(data:, encoding: )
, который является неисправным инициализатором (он возвращает nil
, если кодировка, указанная вами, неверна), следовательно, Optional
в операторе печати.
JSONEncoder
всегда создает действительный кодированный в кодировке UTF-8 String
, так что вы можете безопасно принудительно развернуть возвращаемое значение инициализатора, выполнив
let jsonString = String(data: jsonData, encoding: .utf8)!