objective-c - swift vs 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”
解决方案
推荐阅读
- javascript - React - 如何从屏幕左侧和右侧删除空间
- c++ - 我的 openGL 纹理类中有什么愚蠢的错误?
- c++ - 缺少返回的局部变量的自动移动
- reactjs - 在引导程序 5 上显示带有反应钩子的模式的问题
- sql - Groovy + Oracle sql,如何同时创建表和传递变量
- javascript - 为 Here 地图标记添加进度条
- php - Yii2 高级 + docker-compose + nginx + certbot:子域中的错误 403
- python - 无法安装uwsgi。我有错误:命令出错,退出状态为 1:
- java - 为什么我的 MCreate Java Minecraft mod 无法编译?
- html - 无法设置标签图标