Tus*_*shu 10 serialization json dart
对于以下代码
var address = new Address();
address.street = 'N 34th';
address.city = 'Seattle';
var serialization = new Serialization()
..addRuleFor(address);
String output = serialization.write(address);
Run Code Online (Sandbox Code Playgroud)
我如何获得这样的json输出:
address: {'street':'N 34th', 'city':'Seattle'}
Run Code Online (Sandbox Code Playgroud)
上述代码生成的输出如下:
{"roots":[{"__Ref":true,"rule":3,"object":0}],"data":[[],[],[],[["Seattle","N 34th"]]],"rules":"{\"roots\":[{\"__Ref\":true,\"rule\":1,\"object\":0}],\"data\":[[],[[{\"__Ref\":true,\"rule\":4,\"object\":0},{\"__Ref\":true,\"rule\":3,\"object\":0},{\"__Ref\":true,\"rule\":5,\"object\":0},{\"__Ref\":true,\"rule\":6,\"object\":0}]],[[],[],[\"city\",\"street\"]],[[]],[[]],[[]],[[{\"__Ref\":true,\"rule\":2,\"object\":0},{\"__Ref\":true,\"rule\":2,\"object\":1},\"\",{\"__Ref\":true,\"rule\":2,\"object\":2},{\"__Ref\":true,\"rule\":7,\"object\":0}]],[\"Address\"]],\"rules\":null}"}
Run Code Online (Sandbox Code Playgroud)
Set*_*add 12
事实证明,dart:json图书馆使这很容易.您需要toJson在班级中实施才能使其正常运行.
例如:
class Address {
String street;
String city;
Map toJson() {
return {"street": street, "city": city};
}
}
main() {
var addr = new Address();
addr.street = 'N 34th';
addr.city = 'Seattle';
print(JSON.stringify(addr));
}
Run Code Online (Sandbox Code Playgroud)
哪个会打印出来:
{"street":"N 34th","city":"Seattle"}
Run Code Online (Sandbox Code Playgroud)
您可以使用JsonObject for Dart,将其添加到您的pubspec.yaml文件中,然后运行pub install(工具 -> Pub Install)
dependencies:
json_object:
git: git://github.com/chrisbu/dartwatch-JsonObject.git
Run Code Online (Sandbox Code Playgroud)
然后更改您的代码以调用objectToJson:
dependencies:
json_object:
git: git://github.com/chrisbu/dartwatch-JsonObject.git
Run Code Online (Sandbox Code Playgroud)
请注意,objectToJson需要镜像支持(反射功能),目前仅适用于 Dart VM。截至 2012 年 12 月 20 日,它在 dart2js 中不起作用。
| 归档时间: |
|
| 查看次数: |
1666 次 |
| 最近记录: |