解码蒸气中的对象数组

decode array of objects in vapor

我如何解码以下 json 数组(它是 http 请求的一部分)

[ 
  { "id": 0, "name": "darth maul" }, 
  { "id": 1, "name": "darth sidious" } 
]

在swiftvapor 3中有解码功能?

蒸汽代码:

struct User: Content {
    var id: Int
    var name: String
}

router.put("user") { request -> Future<HTTPStatus> in
    return try request.content.decode(User.self).map({ (user) -> (HTTPStatus) in
        // process ...
        return .ok
    })
}

您的代码已经非常接近了,只需要一点点改动:不是解码单个用户,而是解码一组用户。注意 decode.

中的方括号
router.put("user") { request -> Future<HTTPStatus> in
    return try request.content.decode([User].self).map({ (users) -> (HTTPStatus) in
        // process ...
        return .ok
    })
}