9

parse()で提供されている関数を使用していますdart:json。を使用して解析されたデータを変換する方法はありparse()ますか? reviverJavaScriptを使用してJSONを解析するときの引数に似たものを考えています:

JSON.parse(text[, reviver])
4

1 に答える 1

12

parse()関数はdart:json、解析されたデータを変換するために使用できる引数としてコールバックを受け取ります。たとえば、日付フィールドを、年、月、日を表す数値のリストとしてではなく、DateTime オブジェクトとして表現したい場合があります。解析する 2 番目の引数として「reviver」関数を指定します。

この関数は、解析されるオブジェクトまたはリスト プロパティごとに 1 回呼び出され、解析された値の代わりにリバイバー関数の戻り値が使用されます。

import 'dart:json' as json;

void main() {
  var jsonPerson = '{"name" : "joe", "date" : [2013, 10, 3]}';

  var person = json.parse(jsonPerson, (key, value) {
    if (key == "date") {
      return new DateTime(value[0], value[1], value[2]);
    }
    return value;
  });

  person['name'];             // 'joe'
  person['date'] is DateTime; // true
}
于 2013-07-08T16:19:17.087 に答える