17

オブジェクトを JSON に変換しようとしています。

  var obj = { "dt": new DateTime.now() };
  var s = stringify(obj);

ランタイムは、「オブジェクトの toJson メソッドの呼び出しに失敗しました」という例外をスローします。

DateTime クラスにはtoJsonメソッドがないため、これは当然のことです。しかし、この場合どうすればいいですか?

Javascript のJSON.stringify関数にはオプションの引数置換があり、オブジェクトにtoJsonメソッドがない場合でも、任意のオブジェクトをシリアル化する独自の方法を提供できます。Dartに同様の機能はありますか、それとも独自のtoJsonメソッドでDateTimeクラスを何らかの形で拡張できますか?

4

3 に答える 3

3

Zdeslav Vojkovic の答えは時代遅れです。

JSON.encode()メソッドには、 JSON にネイティブにシリアル化できないオブジェクトに対して呼び出されるdart:convertオプションのメソッドがあります。toEncodableその後、DateTime の適切なシリアル化を返すクロージャを提供するのはユーザー次第です。

于 2014-02-16T18:04:47.493 に答える