0

我正在使用带有移动绑定的 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”

4

0 回答 0