Ios 如何将struct转换为json Swift

Ios 如何将struct转换为json Swift,ios,swift,Ios,Swift,我需要像这样创建JSON,但我的代码不起作用: { "room": "string", "products": [{ "name": "string", "quantity": 0 }], "observations": "string", "date": "dd-mm-yyyy hh:mm:ss" } 我需要将此结构转换为JSON,我的代码是: struct Products: JSONSerializable {

我需要像这样创建JSON,但我的代码不起作用:

{
    "room": "string",
    "products": [{
        "name": "string",
        "quantity": 0
    }],
    "observations": "string",
    "date": "dd-mm-yyyy hh:mm:ss"
}
我需要将此结构转换为JSON,我的代码是:


struct Products: JSONSerializable {
    let name: String
    let quantity: Int   
}
struct Pedido: JSONSerializable{
    let room: String
    let products: Array
    let observations: String
    let date: NSDate
}
此代码无效,在日志中返回nil:


 let JSONPedido = Pedido(room: receivedString,
                         products: products,
                         observations: observationString!,
                         date: date).ToJSON()

使用structs,您还可以创建一个变量,作为struct值的字典表示形式。在这种情况下,它将如下所示:

struct Pedido {
    let room: String
    let products: Array
    let observations: String
    let date: NSDate
    var pedidoJSON: [String: AnyObject] {
        return ["room" : room, "products": products, "observations": observations, "date": date]
    }
}
然后,当您需要JSON值时,可以像这样访问它

//assuming you already have a pedido instance
let pedidoJson = pedidoInstance.pedidoJSON

检查:
JSONSerializable
不是Swift的一部分。如果您使用的是像Alamofire这样的第三方库,您应该在问题中对此进行解释(使用链接)。我想你不工作的
.ToJSON()
也来自它。嘿,伙计,谢谢你。我无法创建pedidoJSON os结构。。。无法计算此args“let”声明的属性或计算的属性必须是变量@pbush25您的解决方案可行,但您不认为OP应该使用JSONSerializable,因为他们已经符合它了吗?或者如果他们不使用它,他们不应该遵守它…:pA结构无法符合JSONSerializable。这不是Swift类型,OP一定是从其他地方得到协议的。