ios - 转换键值对<字符串:String> to JSON

标签 ios json swift

我正在尝试转换 KeyValuePairs<String:String>到 JSON,这是我迄今为止尝试过的方法,但它作为 KeyValuePairs 失败了。

var userKeyValuePair: KeyValuePairs<String, String> {
    return ["FirstName": "NSDumb",
            "Address": "some address value",
            "Age": "30"]
}

我正在使用KeyValuePairs因为我需要序列中键值的顺序,而不是无序,所以我尝试使用以下代码将上面的内容转换为 JSON

let serializedData = try! JSONSerialization.data(withJSONObject: userKeyValuePair, options: [])
        let encodedData = String(data: serializedData, encoding: String.Encoding.utf8)

但是上面的代码会引发运行时错误并提示 JSON 值无效。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (__SwiftValue)'

如果我使用上面的字典来序列化 JSONObject,它可以正常工作,但不能使用 KeyValuePairs,我首先想到也许我应该创建自己的类型来实现 Sequence协议(protocol),但在我走这条路线之前,我想知道是否有更好的方法来做到这一点?

最佳答案

我试图旋转我的头,但无法找到一种方法来获取 KeyValuePairs<String, String>转换为字典,因此我最终使用字典并更改了我的代码流程以实现我想要做的事情。

如果您的要求需要您有一本有序的字典,那么我确实遇到了 good library which you may want to have a look at但最终我还是用字典来完成我的工作。

当我想到这一点时,不会有任何情况需要对字典进行排序,因为字典的整个想法就是只存储可哈希的键值对集,所以最后我调整了我的逻辑来解决这种情况并达到预期的结果。

关于ios - 转换键值对<字符串:String> to JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56553920/

相关文章:

ios - 如何检测iPhone是否处于静音模式

objective-c - Objective-C - block 代码不按顺序执行?

java - Spring MVC Rest 服务使用 JSON

jquery - 如何在 django 中序列化字典以在 Jquery 中呈现 [问题级别 - 初学者]

ios - Swift 5 中的自定义字体在 Xcode 10 中不起作用

swift - 在 View 中设置高度并忽略安全顶部边缘

ios - swift:将 SKShapeNode 转换为 SKSpriteNode -> 无纹理

ios - 由于将图像转换为数据以将它们存储在数据库中,应用程序滞后。 (仅限启动屏幕)

ajax - 在 ajax 请求中下载文件而不会遇到长查询字符串

objective-c - 将 Objective-C 转换为 Swift - 错误 : Type 'Int' does not conform to protocol 'BooleanType'