JavaScript で JSON を解析して Date オブジェクトを受け取るにはどうすればいいですか? 質問する

JavaScript で JSON を解析して Date オブジェクトを受け取るにはどうすればいいですか? 質問する

次のような 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);

そして、あなたの日付は正確に表示されます。

おすすめ記事