Конвертировать NSObject в строку JSON - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть класс, который соответствует NSObject и имеет такие поля, как NSNumber и NSMutableArray, поэтому я не могу использовать Codable здесь.

Итак, класс такой:

class Custom: NSObject {
    var users: NSMutableArray?
    var type: NSNumber?
    .. and many more fields
}

Теперь у меня есть объект этого класса, и я хочу получить строку JSON из этого объекта:

Я пробовал следующее:

let json = try? JSONSerialization.data(withJSONObject: customObject, options: JSONSerialization.WritingOptions.prettyPrinted) as? [String: Any]

let json = try? JSONSerialization.data(withJSONObject: paymentData, options: JSONSerialization.WritingOptions.prettyPrinted)

Два приведенных выше кода приводили к сбою, как в случае неверного типа верхнего уровня в JSON write '

And used SwiftyJson library too but that too gave the error SwiftyJSON.SwiftyJSONError.unsupportedType

Я хотел попробовать Codable, но это требует от меня преобразования NSNumber в Int и MSMutableArray в Array, но я не могу изменить это, так как я использовал этот код во многих других местах, а также мой код работает с Objective C, так что я либо имел использовать NSNumber или должен был конвертировать между Int и NSNumber слишком много раз.

Есть ли решение, которое не требует изменения текущей реализации класса и все же преобразовывает объект в json. Любая помощь будет оценена.

...