使用Dart解析JSON字符串时转换数据

Sha*_*uli 9 dart

我正在使用parse()提供的功能dart:json.有没有办法使用parse()?转换解析数据?在reviver使用JavaScript解析JSON时,我正在考虑与参数类似的东西:

JSON.parse(text[, reviver])
Run Code Online (Sandbox Code Playgroud)

Sha*_*uli 8

parse()函数dart:json需要一个回调为精氨酸,您可以使用变换解析数据.例如,您可能更喜欢将日期字段表示为DateTime对象,而不是表示年,月和日的数字列表.指定'reviver'函数作为解析的第二个参数.

对于每个解析的对象或列表属性调用此函数一次,并使用reviver函数的返回值而不是解析的值:

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
}
Run Code Online (Sandbox Code Playgroud)