swift 与 objc JSON 编码

问题描述

我正在使用带有移动绑定的 GOlang 库。 GO 库中的模型之一将数据作为参数。如果应该是 utf8 编码的 JSON 字符串。当我在 objc 中编码该 JSON 时,一切正常,但我无法使用 swift 编码的 JSON 实例化该模型。什么会导致这种情况?

这里是objc代码

Nsstring *invitation = @"{ \"@id\": \"242304ff-7028-4991-b56e-842a85f345dd\",\"recipientKeys\": [ \"EXrC5FVVBVxRf2DZ8g638d5BA9fzNQNbLFQFXn8nzQHL\" ],\"serviceEndpoint\": \"ws://aws.xsx.com:8002\"}";
NSData *data = [invitation dataUsingEncoding:NSUTF8StringEncoding];

我已经在 swift 中尝试过,但没有用:

let data = """
{
    "serviceEndpoint": "ws://aws.xsx.com:8002","recipientKeys": [
        "2VPFQH6kBRJbtve3xmpVbLbh7YqfiB9gE8mHr8rbmznS"
    ],"@id": "503509ff-4014-41f6-a43b-6eb6e7d5141d"
}
""".data(using: .utf8)

而且我还尝试使用 JSONEncoder 对该 JSON 进行编码

let data = try! JSONEncoder().encode(invitation) 其中邀请是 Codable 结构:

struct Invitation: Codable {
    enum CodingKeys: String,CodingKey {
        case serviceEndpoint = "serviceEndpoint"
        case recipientKeys = "recipientKeys"
        case id = "@id"
    }
    let serviceEndpoint: String
    let recipientKeys: [String]
    let id: String
}

我总是收到那个错误

无效字符 '\x00' 寻找值的开头

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...