9

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

JSON.parse(text[, reviver])
4

1 回答 1

12

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
}
于 2013-07-08T16:19:17.087 回答