相关疑难解决方法(0)

将JSON序列化程序添加到每个模型类?

谈到Dart中的JSON编码,根据Seth Ladd的说法,最终批准的官方方式是dart:convert+ JSON.Encode.

假设我们有一堆模型类(PODO),例如:

class Customer
{
  int Id;
  String Name;
}
Run Code Online (Sandbox Code Playgroud)

现在,我希望能够对我的域对象进行JSON编码,如下所示:

var customer = new Customer()
  ..Id = 17
  ..Name = "John";
var json = JSON.encode(customer);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不会起作用......

Uncaught Error: Converting object to an encodable object failed.
Stack Trace: 
#0      _JsonStringifier.stringifyValue (dart:convert/json.dart:416)
#1      _JsonStringifier.stringify (dart:convert/json.dart:336)
#2      JsonEncoder.convert (dart:convert/json.dart:177)
....
Run Code Online (Sandbox Code Playgroud)

...除非我们明确告诉dart:convert如何编码:

class Customer
{
  int Id;
  String Name;

  Map toJson() { 
    Map map = new Map();
    map["Id"] = Id;
    map["Name"] = …
Run Code Online (Sandbox Code Playgroud)

json dart

44
推荐指数
4
解决办法
2万
查看次数

标签 统计

dart ×1

json ×1