У меня есть класс, который соответствует 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.
Любая помощь будет оценена.