我有一个符合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。 任何帮助将不胜感激。