首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JsonConvert.DeserializeObject<DataTable>(jsondata);强制日期时间到字符串列

JsonConvert.DeserializeObject<DataTable>(jsondata);强制日期时间到字符串列
EN

Stack Overflow用户
提问于 2018-05-03 08:26:10
回答 2查看 2K关注 0票数 2

这是我的儿子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[
 {"ID":"1","DATETIME":"2018-05-02T00:00:00"},
 {"ID":"2","DATETIME":"2018-05-02T00:00:00"},
 {"ID":"3","DATETIME":""},
 {"ID":"4","DATETIME":"2018-05-02T00:00:00"}
]

我使用DataTable dt = JsonConvert.DeserializeObject<DataTable>(jsondata);将json转换为datatable,但是对于null datetime列,我得到以下错误:

字符串不能被识别为有效的DateTime.不能将<>存储在DATETIMEColumn中。预期类型为DateTime。

那么,如何将json转换为所有列都是字符串的datatable呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-03 08:56:34

您可以定义Serializer设置来忽略DateTime解析,以便将动态JOSN转换为DataTableDownnside表示,DateTime将在DataTable中作为字符串读取。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var settings = new JsonSerializerSettings
        {
            DateParseHandling = DateParseHandling.None
        };
        
string json = "[{\"ID\":\"1\",\"DATETIME\":\"2018-05-02T00:00:00\"}, {\"ID\":\"1\",\"DATETIME\":\"\"}]";

var jsonObj = JsonConvert.DeserializeObject<DataTable>(json, settings);
        
Console.WriteLine(jsonObj.Rows.Count);

您可以在DateParseHandling上阅读这里设置。

检查这个活果酱

票数 7
EN

Stack Overflow用户

发布于 2018-05-03 08:49:48

序列化到DataTable的问题是,您可以控制如何创建列,在您的示例中,空日期就是问题所在。虽然可以创建您自己的自定义JsonConverter,这将是引用复杂和大量的代码,我的建议是反序列化为List<Dictionary<string, string>>。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var result = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsondata);

现在,您可以循环遍历动态数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foreach (var dictionary in result)
{
    foreach (var kvp in dictionary)
    {
        Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
    }
}

这将为您提供如下输出:(包括JSON数据中的任何其他属性):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Key: ID, Value: 1
Key: DATETIME, Value: 2018-05-02T00:00:00
Key: ID, Value: 2
Key: DATETIME, Value: 2018-05-02T00:00:00
Key: ID, Value: 3
Key: DATETIME, Value: 
Key: ID, Value: 4
Key: DATETIME, Value: 2018-05-02T00:00:00
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50159805

复制
相关文章
Bash遍历字符串列表
大家知道,通过python可以很容易实现各类数据结构,例如列表。但在bash中,实现一个列表相对来说会比较复杂。
zero000
2021/03/23
7.1K0
Bash遍历字符串列表
C#微信接口之推送模板消息功能示例
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》
庞小明
2018/09/19
2.5K0
java转换字符串为时间_JAVA字符串转日期或日期转字符串
文章中,用的API是SimpleDateFormat,它是属于java.text.SimpleDateFormat,所以请记得import进
全栈程序员站长
2022/08/23
2.9K0
Python-时间及日期-03-字符串转时间
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 Python:3.6.0
zishendianxia
2020/03/26
3K0
Python-时间及日期-03-字符串转时间
Python-时间及日期-02-时间转字符串
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2
zishendianxia
2019/10/23
1.7K0
DataTable导入到Excel文件
public static bool DataTableToExcel(System.Data.DataTable dt, string fileName, bool showFileDialog=false)         {             if (showFileDialog)             {                 SaveFileDialog saveFileDialog = new SaveFileDialog();                 saveFile
跟着阿笨一起玩NET
2018/09/18
1.5K0
python3 进行字符串、日期、时间、时间戳相关转换
1、字符串转换成时间戳 2、 日期转换成时间戳
双面人
2019/09/09
1.2K0
python3 进行字符串、日期、时间、时间戳相关转换
CA2355:反序列化对象图中的不安全 DataSet 或 DataTable
当强制转换的或指定的类型的对象图可能包含 DataSet 或 DataTable 类时,进行反序列化。
呆呆
2022/02/20
5980
mysql时间戳格式转换日期格式字符串
注:方法2时,需要先用unix_timestamp()方法将数据转换成时间戳格式,再用from_unixtime()方法将时间戳转换成自定义格式时间字符串。直接用from_unixtime()方法转换出来的数据NULL。
全栈程序员站长
2022/06/24
4.8K0
【说站】python字符串转换为日期时间
1、datetime.strptime是将字符串解析为日期时间的主要例程。它可以处理各种格式,格式由您提供的格式字符串确定。
很酷的站长
2022/11/24
1.4K0
【说站】python字符串转换为日期时间
python time时间,日期,时间
        timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")
py3study
2020/01/15
3K0
python学习笔记1:序列字符串列表操作
一、字符串切片的原理 s='abcde' for i in range(5,0,-1):     print s[0:i] print 'dbc' in 'abcd' 二、字符串模版 from string import Template s = Template("Hello , my dear ${username}") print s.substitute(username = 'yzh') s="today is a great day" print s.upper() 三、三引号 errH
超级大猪
2019/11/21
4820
Java 日期时间
java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。
taoli
2022/09/30
2.8K0
Java 日期时间
C/C++ Qt StringListModel 字符串列表映射组件
StringListModel 字符串列表映射组件,该组件用于处理字符串与列表框组件中数据的转换,通常该组件会配合ListView组件一起使用,例如将ListView组件与Model模型绑定,当ListView组件内有数据更新时,我们就可以利用映射将数据模型中的数值以字符串格式提取出来,同理也可实现将字符串赋值到指定的ListView组件内。
微软技术分享
2022/12/28
7320
C/C++ Qt StringListModel 字符串列表映射组件
时间&日期函数
今天要跟大家简要介绍一下excel中经常会用到的日期与时间函数! 日期与时间类的函数虽然算所有函数中最难掌握的,但是因为格式众多,形式多样,而且作为其他高级函数的辅助嵌套元素,日期与时间格式的使用又特
数据小磨坊
2018/04/10
3.3K0
时间&日期函数
sql日期时间转换成字符串_把时间格式转化为字符串格式
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
2K0
日期时间控件[通俗易懂]
开发软件使用到日期时间控件的地方很多,但是很多时候Html5自带的时间控件无法满足开发的需要,所以使用这种时间控件完全没有问题
全栈程序员站长
2022/08/31
4.5K0
日期时间控件[通俗易懂]
Ubuntu 如何强制时间同步
最好的办法就是启动 NTP 进程。 强制同步 sudo ntpdate -s time.nist.gov 上面的命令将会强制同步本地计算机上的时间。 查看进程状况 sudo service ntp status 上面的命令能够查看 NTP 的状态。 启动进程 sudo service ntp start 上面的命令将会启动 NTP 进程。 https://www.ossez.com/t/ubuntu/13526
HoneyMoose
2021/07/03
1.6K0
Ubuntu 如何强制时间同步
时间序列 | 字符串和日期的相互转换
在数据处理过程中,难免会遇到日期格式,特别是从外部读取数据到jupyter或其他python编译器中,用于数据处理分析时。若读取excel文档时还能保留原本日期时间格式,但有时却差强人意,读取后为字符串格式,尤其是以csv格式存储的数据。此时就需要用到字符串转日期格式。
数据STUDIO
2021/06/24
7.4K0
Python字符串转换为日期时间– strptime()「建议收藏」
We can convert a string to datetime using strptime() function. This function is available in datetime and time modules to parse a string to datetime and time objects respectively.
全栈程序员站长
2022/09/05
2.6K0

相似问题

Server日期时间到日期时间字符串列

11

Datatable Compute方法将字符串列转换为日期

20

清理熊猫日期时间字符串列

11

将日期时间的字符串列表转换为日期时间

22

在DataTable中按日期对字符串列进行排序

45
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文