我尝试将对象转换为JSON。如何在Dart中将包含DateTime字段的对象转换为JSON?
var obj = { "dt": new DateTime.now() };
var s = stringify(obj);
运行库引发异常:“在对象上调用toJson方法失败。”
这是因为DateTime类没有toJson方法。 但是我应该怎么做呢?
JavaScript的JSON.stringify
函数有一个可选参数替代品这让我提供我自己的,即使对象没有的toJSON方法的对象序列化的方式。 Dart中是否有类似的工具,或者我可以用我自己的toJson方法以某种方式扩展DateTime类?
日期格式在这里http://api.dartlang。org/docs/releases/latest/intl/DateFormat.html将stringify()添加替换函数参数存在一个错误https://code.google.com/p/dart/issues/detail?id=5911 – 2013-05-14 10:50:02
谢谢,不知道它(我检查了核心库,但'intl'必须单独安装)。我想ISO8601/RFC3339格式仍然需要“手动”构建,对吧?也因为他们不是真的'本地化',我不知道他们是否真的适合'intl'。一个好的序列化库是需要的,但我认为在镜像API完成之前没有任何意义。 – 2013-05-14 11:04:05
DateTime对象具有可用于在不尝试解析字符串的情况下提取其数据的字段。或者可以很容易地生成一个硬编码格式的新DateFormat(“yyyy-MM-dd”)来打印ISO表单。它不是本地化的,但它打印你想要的。还有一个序列化库,它可以使用镜像(如果可用),但也可以编写硬编码的规则。它更多的目的是能够将数据读回到飞镖中,而不是生成JSON供其他程序使用。 – 2013-05-14 17:37:47