通过Websocket快速发送jsonObject作为数据发送

时间:2019-02-21 16:54:48

标签: ios json swift websocket

此错误我无法将jsonObject发送为数据

  

由于未捕获的异常“ NSInvalidArgumentException”而终止应用程序,原因:“ JSON写入(_NSInlineData)中的类型无效”

let data = /* type of data */
let dic : NSDictionary = ["ID" : "UserName", "Data" : data]
let jsonData = try? JSONSerialization.data(withJSONObject: dic, options: [])
self!.socket.write(data: jsonData!)

1 个答案:

答案 0 :(得分:1)

根据您的数据创建一个字符串,然后可以发送它。

func jsonToString(json: AnyObject) -> String{
    do {
        let data1 =  try JSONSerialization.data(withJSONObject: json, options: JSONSerialization.WritingOptions.prettyPrinted)
        let convertedString = String(data: data1, encoding: String.Encoding.utf8)
        return convertedString!
    } catch let myJSONError {
        print(myJSONError)
        return ""
    }
}

您可以使用它:

let messageString = jsonToString(json: jsonData as AnyObject)
   socket.write(string: messageString)