如何使用Dart Serialization获取JSON序列化字符串

对于以下代码
var address = new Address();
address.street = 'N 34th';
address.city = 'Seattle';
var serialization = new Serialization()
 ..addRuleFor(address);
String output = serialization.write(address);

我如何获得像这样的json输出

address: {'street':'N 34th','city':'Seattle'}

以上代码产生的输出如下:

{"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,\"rule\":5,\"rule\":6,\"object\":0}]],[[],[\"city\",\"street\"]],[[]],\"rule\":2,\"object\":1},\"\",\"object\":2},\"rule\":7,[\"Address\"]],\"rules\":null}"}

解决方法

您可以使用 JsonObject for Dart,将其添加到您的pubspec.yaml文件中,然后运行pub install(工具 – > Pub Install)
dependencies:
  json_object: 
    git: git://github.com/chrisbu/dartwatch-JsonObject.git

然后更改你的代码调用objectToJson:

import 'package:json_object/json_object.dart';

var address = new Address();
address.street = 'N 34th';
address.city = 'Seattle';
String output =  objectToJson(address);

请注意,objectToJson需要镜像支持(反射功能),该镜像只支持Dart VM.截至2012-12-20,dart2js不起作用.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...