0

私は Dotnet 3.0.103 を使用しています。このように定義されたコードを持つ webapi を公開しました。

[HttpPost]
        public string Post([FromBody] string data)
        {
            try
            {
            EmployeeRequest request = JsonConvert.DeserializeObject<EmployeeRequest>(data);

今、郵便配達員から API を呼び出すと、このような通常の json リクエスト本文が機能しません

{"EmployeeId": 3, "Name": "John"}

このようなエラーをスローします。

{
    "errors": {
        "": [
            "Unexpected character encountered while parsing value: {. Path '', line 1, position 1."
        ]
    },
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "|b9ea70ff-4ffda7ef1c244839."
}

Json本体とは対照的に、エスケープされた文字列が正常に機能する場合、

 "{\"EmployeeId\": 3, \"Name\": \"John\"}"

プレーンなjsonだけで機能させたいと思います。

どんな助けでも大歓迎です。

ありがとう、アルン

4

2 に答える 2

0

json を個別に逆シリアル化する必要はありません。.NET は、すぐに使用できます。署名を次のように変更してみてください:public string Post([FromBody] EmployeeRequest data)エスケープせずに郵便配達員から電話をかけます。それはうまくいくはずです。

于 2020-04-02T12:59:01.127 に答える