Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将DateTime对象转换为json_Json_Dart - Fatal编程技术网

如何将DateTime对象转换为json

如何将DateTime对象转换为json,json,dart,Json,Dart,如何将DateTime对象转换为json?它抛出将对象转换为可编码对象的失败。,那么这是一个bug还是它只是dart还不支持它?如果你们知道一些解决方法,请告诉我。首先:JSON不支持日期/时间编码。。这通常是根据另一方的约定完成的,通常是字符串表示(例如ISO8601,但Microsoft的ASP.NET使用自定义格式) 第二: (简而言之:运行时不序列化DateTime。您需要使用自定义序列化逻辑创建包装器。)您也可以创建自己的自定义编码器来传递参数,而不是使用包装器 import'dart

如何将
DateTime
对象转换为json?它抛出将对象转换为可编码对象的
失败。
,那么这是一个bug还是它只是
dart
还不支持它?如果你们知道一些解决方法,请告诉我。

首先:JSON不支持日期/时间编码。。这通常是根据另一方的约定完成的,通常是字符串表示(例如ISO8601,但Microsoft的ASP.NET使用自定义格式)

第二:

(简而言之:运行时不序列化DateTime。您需要使用自定义序列化逻辑创建包装器。)

您也可以创建自己的自定义编码器来传递参数,而不是使用包装器

import'dart:convert'显示JSON;
void main(){
var dt=new DateTime.now();
var str=JSON.encode(dt,toEncodable:myEncode);
打印(str);
}
动态myEncode(动态项){
如果(项目为日期时间){
return item.toiso8601字符串();
}
退货项目;
}

您也可以在Dart中转换地图

Map-encodeMap(地图地图){
map.forEach((键,值){
if(值为DateTime){
map[key]=value.toString();
}
});
返回图;
}
用法:
var\u map=encodeMap(\u数据)

您正在将对象(DateTime)编码为其他可编码对象JSON.encode(DateTime.Now()),这在dart编程中是不可能的

因此,将其转换为dart支持的日期到字符串转换,即: 在末尾添加:.toIso8601String()

JSON.encode(DateTime.Now().toIso8601String()),这可以解决您的错误。 //我以DateTime.Now()为例