7

メソッドを使用してJavaScriptSerializer.Deserialize<>()、クライアントから受け取った JSON をカスタム C# クラスに変換しています。そのクラスのプロパティの 1 つがDateTime. 現在、Deserialize<>()メソッドはエラーをスローします。

"(my date string)" は DateTime の有効な値ではありません。

さまざまな組み込み JavaScript Date() メソッドによって生成されるティックやその他の形式を含む、いくつかの異なる形式を使用して日付を送信しようとしましたが、どれも機能しませんでした。

Deserialize<>()それを .NET に解析するために、メソッドが期待する正確な形式は何DateTimeですか?

4

5 に答える 5

8

その通りです、@friendlycello。残念ながら、この.Net シリアライザーの DateTime 形式JSON.stringify()からバックスラッシュを削除します。\/Date(ticks)\/

JSON.stringify()これらのバックスラッシュを含め、からの出力を調整するカスタム関数を作成しました。したがって、JSON.stringify()data : param customJSONstringify().$.ajax()

function customJSONstringify(obj) {
    return JSON.stringify(obj).replace(/\/Date/g, "\\\/Date").replace(/\)\//g, "\)\\\/")
}
于 2013-04-09T17:10:36.060 に答える
0

エラーを受け取った後

/Date(1347992529530)/ は DateTime の有効な値ではありません。

@Luis Perezが提案した置換を使用するとうまくいきました。

var data = ko.toJSON({ objext: obj});
$.ajax({
    url: "/API/API.asmx/SaveObject",
    type: "POST",
    dataType: "json",
    contentType: "application/json; char-utf8;",
    data: data.replace(/\/Date/g, "\\\/Date").replace(/\)\//g, "\)\\\/"),
    success: function (r) {},
    error: function (e) {},
    complete: function () {}
});
于 2018-09-05T11:45:06.343 に答える