首页 > 解决方案 > 将 NSObject 转换为 JSON 字符串

问题描述

我有一个符合 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 中的 Invalid top-level type'

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 的解决方案。任何帮助,将不胜感激。

标签: jsonswiftnsobject

解决方案


推荐阅读