无法使用JSONJoy解析来自Socket.IO的JSON数据

时间:2015-10-02 01:04:30

标签: ios json node.js swift socket.io

我正在尝试使用JSONJoy转换从Socket.IO接收的JSON。我有JSONJoy协议的以下结构

struct Order: JSONJoy {
    let location: String?
    let username: String?

    init(_ decoder: JSONDecoder) {
        location = decoder["location"].string
        username = decoder["username"].string
    }
  }

我已经像我这样设置了Socket

socket.on("order") {data, ack in
    let order = Order(JSONDecoder(data))
    print(order)
}

响应总是

Order(location: nil, username: nil)

订单是这样发出的

var order = JSON.stringify("{ 'username': 'Test', 'location': 'Start'}");
localSocket.emit('order', order);

我能够确认iOS和服务器端点上的连接。

1 个答案:

答案 0 :(得分:0)

您在字符串上调用JSON.stringify。要么只是发出字符串,要么对字符串进行字符串化。

e.g。

var order = JSON.stringify({username: 'Test', location: 'Start'});