Преобразовать строку с 0 в Json в Swift 4 - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь закодировать целое число, которое начинается с 0, в JSON, используя swift 4.

Я использую довольно стандартную библиотеку JSONSerialization, но по какой-то причине, после преобразования строки в данные, используяutf8, я не могу его сериализовать.

let code = "012345" // example code
let body = "{\"code\": " + code + "}"
let stringData = body.data(using: .utf8)!
let jsonArray = try? JSONSerialization.jsonObject(with: stringData, options : .allowFragments) [returns nil]
let data: Data? = try? JSONSerialization.data(withJSONObject: jsonArray as Any, options: .prettyPrinted)

В настоящее время код разрывается со второй до последней строки (начиная с let jsonArray) и возвращает nil.Обратите внимание, что если бы я изменил код на «112345», ошибки не было бы.Любая помощь приветствуется, спасибо!

1 Ответ

1 голос
/ 19 сентября 2019

Вместо того, чтобы вручную создавать строку, используйте Dictionary и JSONSerialization для создания data, как показано ниже,

let code = "012345"
let body: [String: Any] = ["code": code]
do {
    let stringData = try JSONSerialization.data(withJSONObject: body, options: .sortedKeys)
    print(String.init(data: stringData, encoding: .utf8)!)
} catch {
    print(error)
}

Вывод

{"code": "012345"}

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