使用Swift中的Unbox在JSON解码期间将字符串数组转换为整数数组

时间:2016-07-12 14:50:10

标签: json swift

更新:现在已在Unbox 1.9中修复此问题。

我在一个小型Swift项目中使用了令人敬畏的Unbox JSON解码器,到目前为止,它已经证明非常容易使用。但是,我遇到了一个小问题,试图将JSON中的字符串数组解码并转换为整数数组属性。

我有一个Conversation类,如下所示:

final class Conversation: Unboxable {

    var participants: [Int]?
    var subject: String?
    var timestamp: Int?
    var conversationId: String?

    init(unboxer: Unboxer) {
        self.participants = unboxer.unbox("participants")
        self.subject = unboxer.unbox("subject")
        self.timestamp = unboxer.unbox("timestamp")
        self.conversationId = unboxer.unbox("conversationId")
    }
}

我正在使用的JSON看起来像这样:

{
    "subject" : "subject line goes here",
    "participants" : [
        "201984",
        "237810",
        "149092",
        "202577"
    ],
    "timestamp" : 1468322845885,
    "conversationId" : "9bf356d1-4823-11e6a51e-2d6dfda33d93"
}

如您所见,JSON中的参与者数组是一个字符串数组,我想将其转换为整数数组。当我运行我的代码时,我的类中的参与者属性在取消装箱后为零。如果我将其类型更改为[String] ?,那么它将取消装箱。 Unbox的一个好处是它会自动将字符串值转换为数字类型(如果可能)。但要么我做错了,要么Unbox没有为数组提供相同的功能。有没有人以前用过Unbox做过这个?

0 个答案:

没有答案