Sea*_*404 6 json nsdictionary swift
编辑:我已经在SO上阅读了相同问题的其他答案,但我无法获得所需的输出.我尝试过其他问题中提出的许多变化,但它不起作用.
我有一个JSON剪切,当我打开websocket时需要将其添加为正文.
sender: "system1@example.com",
recipients:"system2@example.com",
data: {
text: "Test Message"
},
Run Code Online (Sandbox Code Playgroud)
所以使用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)
}
Run Code Online (Sandbox Code Playgroud)
当我打印jsonString时,我明白了
Optional("{\n \"sender\" : \"system1@example.com\",\n \"data\" : {\n
\"text\" : \"Test Message\"\n },\n \"recipients\" :
\"system2@example.com\"\n}")
Run Code Online (Sandbox Code Playgroud)
作为控制台输出.我希望上面的代码片段格式化为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: [])
Run Code Online (Sandbox Code Playgroud)
我尝试了上面这个,我得到以下作为输出:
{
data = {
text = Test Message;
};
recipients = "system1@example.com";
sender = "system2@example.com";
}
Run Code Online (Sandbox Code Playgroud)
然而,websocket期望这样:
{ "sender":"system1@example.com","recipients":
["system2@example.com"],"data":{"text":"Test Message"}}
Run Code Online (Sandbox Code Playgroud)
即使有一些轻微的变化,如错误放置双引号,websocket服务器也不接受输入.如何以这种方式精确格式化JSOn,以便websocket可以接受它?
Sea*_*404 13
在尝试了各种方法后,以下方式对我来说是有用的,可以获得后端所需的确切格式.
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8896 次 |
| 最近记录: |