1

我试图更好地理解每个地方都有不同的用例。

据我了解:

  • 数组:是一个简单的可选数组。
  • arrayValue:是一个非可选数组,如果它是,它将返回一个空数组nil

  • 但我无法正确理解您想在哪里使用arrayObject?当实体不是JSON. 但是我不明白为什么/怎么可能是其他东西JSON,是关于我们自己创建的自定义对象吗?

这是与数组相关的JSON 扩展:

extension JSON {

    //Optional [JSON]
    public var array: [JSON]? {
        if self.type == .array {
            return self.rawArray.map { JSON($0) }
        } else {
            return nil
        }
    }

    //Non-optional [JSON]
    public var arrayValue: [JSON] {
        return self.array ?? []
    }

    //Optional [Any]
    public var arrayObject: [Any]? {
        get {
            switch self.type {
            case .array:
                return self.rawArray
            default:
                return nil
            }
        }
        set {
            if let array = newValue {
                self.object = array as Any
            } else {
                self.object = NSNull()
            }
        }
    }
}
4

0 回答 0