[解決済み】ASP.NET MVC JsonResultの日付フォーマット
質問
私は、単純にモデルのJsonResultを返すコントローラのアクションを持っています。そこで、私のメソッドでは、次のようなものを用意しています。
return new JsonResult(myModel);
これは、1つの問題を除いては、うまくいきます。モデルには日付のプロパティがあり、これはJsonの結果で次のように返されるようです。
"\/Date(1239018869048)\/"
日付はどのように扱えば、私が必要とする形式で返されるのでしょうか?あるいは、上記のフォーマットをスクリプトでどのように扱えばよいのでしょうか?
どのように解決するのですか?
を拡張するだけです。 casperOneの回答 .
は、その JSON仕様 は日付の値を考慮していません。MSは電話をかける必要があり、彼らが選んだ方法は、javascriptの文字列の表現にあるちょっとしたトリックを利用することでした。 決して にシリアライズされます(" \/" も "\/" にマッピングする必要があります)。
参照 http://msdn.microsoft.com/en-us/library/bb299886.aspx#intro_to_json_topic2 をご覧ください ("JavaScriptリテラルからJSONへ" までスクロールダウン)。
<ブロッククオートJSONの欠点の一つは 日付/時間リテラルがないこと。多くの を使用します。 このことを初めて知ったとき JSONに出会う。簡単な説明 (がないのは、(慰めになるかどうかはともかくとして 日付/時間リテラルは、JavaScript も持っていなかった。をサポートしています。 JavaScriptの日付と時刻の値は は、すべてDate オブジェクトを使用します。JSONを使用するほとんどのアプリケーションは したがって、データ形式として一般的に のどちらかを使用する傾向があります。 日付と時刻を表現するための数値 の値です。文字列を使用する場合 一般に、ISO 8601形式です。数値が使用される場合。 の代わりに、この値は通常 の数を意味します。 ミリ秒のユニバーサルコーディネート エポック(epoch)からUTC(UTC)時間(ここでエポックは 1970年1月1日午前0時と定義 (UTC)です。繰り返しになるが、これは単なる の規約であり、JSONの一部ではありません。 規格に準拠しています。データを交換する場合 他のアプリケーションと のドキュメントを確認する必要があります。 日付と時刻の値のエンコード方法 をJSONリテラルに含めることができます。例えば マイクロソフトのASP.NET AJAXは、どちらも使用していません。 のどちらかです。そうではなく .NET の DateTime 値を JSON文字列で、その中身は 文字列は /Date(ticks)/ で、ここで からのミリ秒を表します。 エポック(UTC)である。つまり、1989年11月29日。 4:55:30 AMはUTCで次のようにエンコードされます。 "\/Date(628318530718)\/".
解決策としては、パースすればいいのでは?
value = new Date(parseInt(value.replace("/Date(", "").replace(")/",""), 10));
しかし、どこかでシリアライザが
DateTime
オブジェクトを
new Date(xxx)
の構文があります。それを掘り出してみる。
の第2パラメータは
JSON.parse()
は
reviver
関数で、値が返される前にどのように生成されるかを規定します。
以下は、日付の例である。
var parsed = JSON.parse(data, function(key, value) {
if (typeof value === 'string') {
var d = /\/Date\((\d*)\)\//.exec(value);
return (d) ? new Date(+d[1]) : value;
}
return value;
});
のドキュメントを参照してください。 JSON.parse()
関連
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] JavaScriptの日付の書式設定方法
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み] 数字を通貨文字列としてフォーマットする方法
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] 正しい」JSONの日付形式とは?
-
[解決済み] ファイルアップロード ASP.NET MVC 3.0
-
[解決済み] AngularJSのコントローラからビューにHTMLを挿入する
-
[解決済み] あるAngularJSのコントローラが別のコントローラを呼び出すことはできますか?
-
[解決済み] [Solved] ASP.NET MVCコントローラメソッドからJSON.NETでシリアライズされたcamelCase JSONを返すにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッシブイベントリスナー内部でpreventDefaultができない
-
[解決済み】Failed to load resource: net::ERR_FILE_NOT_FOUND loading json.js
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】npm install --legacy-peer-deps は具体的に何をするのですか?どんなときに推奨されるのか/どんな使用例が考えられるのか?
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み】XMLパースエラー:ルート要素が見つからない コンソールの場所 FF
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み】'useState' が定義されていない no-undef React
-
[解決済み】 \u003C とは何ですか?
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする