谈到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)