如何在Swift 4中从字典创建JSON?

如何在Swift 4中从字典创建JSON?,第1张

概述编辑:我已经在SO上阅读了相同问题的其他答案,但我无法获得所需的输出.我尝试过其他问题中提出的许多变化,但它不起作用. 我有一个JSON剪切,当我打开websocket时需要将其添加为正文. sender: "system1@example.com", recipients:"system2@example.com", data: { text: "Test Message" } 编辑:我已经在SO上阅读了相同问题的其他答案,但我无法获得所需的输出.我尝试过其他问题中提出的许多变化,但它不起作用.

我有一个JSON剪切,当我打开websocket时需要将其添加为正文.

sender: "system1@example.com",recipIEnts:"system2@example.com",data: {  text: "Test Message"   },

所以使用Swift我做了以下,

var messageDictionary : [String: Any] = [        "sender": "system1@example.com","recipIEnts":"system2@example.com","data": [        "text": "Test Message"        ],]    do {        let JsonData = try JsONSerialization.data(withJsONObject: messageDictionary,options: .prettyPrinted)        let JsonString = String(data: JsonData,enCoding: String.EnCoding.ascii)        socket.write(string: JsonString!)        print(JsonString)    } catch {        print(error.localizedDescription)    }

当我打印JsonString时,我明白了

Optional("{\n  \"sender\" : \"system1@example.com\",\n  \"data\" : {\n        \"text\" : \"Test Message\"\n  },\n  \"recipIEnts\" :     \"system2@example.com\"\n}")

作为控制台输出.我希望上面的代码片段格式化为JsON.
如何在没有/ n和其他空格的情况下将输出作为普通JsON?
我使用Swift 4和Xcode 9.1

编辑2:

let JsonData = try JsONSerialization.data(withJsONObject: messageDictionary,options: [])   let decoded = try JsONSerialization.JsonObject(with: JsonData,options: [])

我尝试了上面这个,我得到以下作为输出:

{        data =     {            text = Test Message;    };        recipIEnts = "system1@example.com";        sender = "system2@example.com";    }

然而,websocket期望这样:

{ "sender":"system1@example.com","recipIEnts":    ["system2@example.com"],"data":{"text":"Test Message"}}

即使有一些轻微的变化,如错误放置双引号,websocket服务器也不接受输入.如何以这种方式精确格式化JsOn,以便websocket可以接受它?

解决方法 在尝试了各种方法后,以下方式对我来说是有用的,可以获得后端所需的确切格式.

var messageDictionary = [        "sender":"system1@example.com","recipIEnts":["system2@example.com"],"data":[            "text" : data        ]        ] as [String : Any]        let JsonData = try! JsONSerialization.data(withJsONObject: messageDictionary)        let JsonString = Nsstring(data: JsonData,enCoding: String.EnCoding.utf8.rawValue)
总结

以上是内存溢出为你收集整理的如何在Swift 4中从字典创建JSON?全部内容,希望文章能够帮你解决如何在Swift 4中从字典创建JSON?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存