Xcode Swift Vapor 3“ DecodingError.dataCorrupted:给定的数据不是有效的JSON。”

时间:2019-12-04 14:12:41

标签: swift xcode vapor

删除方法有点问题。当执行删除方法时,它向我显示了

{
    "error": true,
    "reason": "The given data was not valid JSON."
}

签出

import Vapor

struct MyData: Content{
    var id: Int
    var name: String
    var ersteller: String
    var beschreibung: String
    var urlLink: String
}



//______________________________GET______________________________//

/// Register your application's routes here.
public func routes(_ router: Router) throws  {

    var datas: [MyData] = []

    var data1: MyData = MyData(id: 1,
                               name: "Telefonständer",
                               ersteller: "von Mike-vom-Mars",
                               beschreibung: "Faltbarer Tablet- und Handyhalter, der fünf verschiedene Kipppositionen ermöglicht. Dieser Halter benötigt keine Schrauben, einfach ausdrucken und zusammenstecken. Sehr stabil, platzsparend und tragbar.",
                               urlLink: "https://www.thingiverse.com/thing:3513800")

    var data2: MyData = MyData(id: 2,
                               name: "Tool Caddy",
                               ersteller: "von Tom Link",
                               beschreibung: "Ein einfacher Werkzeugwagen für den 3D-Druck. Ca. 4,75 x 3,125 x 1,3 Zoll. Hält Messer, Pinzetten, Rasierklingenschaber, Klebestift, SD-Kartenadapter und ein Abfallfach.",
                               urlLink: "https://www.thingiverse.com/thing:2849473")

    var data3: MyData = MyData(id: 3,
                               name: "Honey, I'm Home!",
                               ersteller: "von Luz Cabrera und Malorie Pangilinan",
                               beschreibung: "Honig-Schlüsselanhänger. Wenn Sie direkt auf die endgültige Farbe drucken, empfehle ich, 100% für das Rahmenteil und 105% für die kleinen Teile zu verwenden, damit sie besser in die Löcher passen. Wenn Sie jedoch die Teile bemalen, empfehle ich 100% beide.",
                               urlLink: "https://www.behance.net/gallery/16925735/Honey-Im-Home")

    router.get("printdata") { req -> [MyData] in

        return datas
    }
    datas.append(data1)
    datas.append(data2)
    datas.append(data3)


  //______________________________Delete______________________________//

    router.delete("delete", Int.parameter) { req -> Future<HTTPStatus> in

        return try req.content.decode(MyData.self).map(to: HTTPStatus.self) { messageRequest in
            let id = try req.parameters.next(Int.self)

            for index in 0..<datas.count{
                if (datas[index].id == id){
                    datas.remove(at: index)
                    return .ok
                }
            }
            return .notFound
        }
    }

0 个答案:

没有答案