次のような JSON があります:
\/Date(1293034567877)\/
これは次の .NET コードの結果です:
var obj = DateTime.Now;
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
serializer.Serialize(obj).Dump();
今、私が直面している問題は、JavaScript でこれから Date オブジェクトを作成する方法です。私が見つけたのは、信じられないほどの正規表現ソリューション (多くはバグを含む) だけでした。
これはすべて JavaScript で記述されているため、エレガントな解決策がないとは信じがたいことです。つまり、JavaScript コードが、JavaScript コードであるはずの JSON (JavaScript Object Notation) を読み取ろうとしているのですが、現時点では、JavaScript がここでうまく機能しないため、そうではないことが判明しています。
また、動作させることができなかった評価ソリューションもいくつか見てきました (セキュリティ上の脅威として指摘されたほか)。
本当にエレガントな方法で行う方法はないのでしょうか?
実際の回答がない同様の質問:
GWT で ASP.NET JSON 日付形式を解析する方法
ベストアンサー1
のJSON.parse
関数はオプションの DateTime 復活関数を受け入れます。次のような関数を使用できます。
dateTimeReviver = function (key, value) {
var a;
if (typeof value === 'string') {
a = /\/Date\((\d*)\)\//.exec(value);
if (a) {
return new Date(+a[1]);
}
}
return value;
}
それから電話する
JSON.parse(somejsonstring, dateTimeReviver);
そして、あなたの日付は正確に表示されます。