2016-10-11 89 views
1

如何在Swift Socket.IO客戶端中接收JSON對象?在Swift Socket.IO客戶端中接收JSON對象

的Node.js

從上的Node.js socket.io,我發射JSON對象作爲在該簡化的例子:

socket.emit('welcome', { text : 'Hello, World!' }); 

夫特

在使用iOS Swift客戶端,我想從對象中獲取此消息。

socket?.on("welcome") {[weak self] data, ack in 
    print(data) 
    if let msg = data[0] as? String { 
     print(msg) // never prints; something's wrong 
    } 
} 

data值,當我把它打印出來是:

[{ 
    text = "Hello, World!"; 
}] 

當我嘗試分析data[0]具有以下(從Apple Developer Blog)...

let json = try? JSONSerialization.jsonObject(with: data[0], options: []) 

。 ..我遇到了一條錯誤消息:

不能援引「JSONObject的」類型的參數列表「(附:任何,選項:[任何])」

+0

您可以打印數據的迴應並添加問題。 –

+0

@ThisClark。我是socket.io的新手。請指導我如何發送swift socket.io的參數。 –

+0

除了在我的問題和Github存儲庫中鏈接的網站之外,我發現以下TicTacToe源代碼有助於編寫我的第一個iOS Socket.io應用程序:https:// github.com/nuclearace/socket.io-client-swift-example – ThisClark

回答

2

你的數據是[[String: Any]]類型,得到text像下面。

if let arr = data as? [[String: Any]] { 
    if let txt = arr[0]["text"] as? String { 
     print(txt) 
    } 
}