我有下面的Json代码片段从API返回。我想反序列化到一个类型化的类,但是属性名称是日期,所以它们随着每次调用而变化。
我该怎么做呢?
"watts": {
"2022-12-19 08:14:00": 0,
"2022-12-19 09:00:00": 48,
"2022-12-19 10:00:00": 114,
"2022-12-19 11:00:00": 140,
"2022-12-19 12:00:00": 140,
"2022-12-19 13:00:00": 132,
"2022-12-19 14:00:00": 105,
"2022-12-19 15:00:00": 53,
"2022-12-19 15:44:00": 0,
"2022-12-20 08:14:00": 0,
"2022-12-20 09:00:00": 230,
"2022-12-20 10:00:00": 383,
"2022-12-20 11:00:00": 453,
"2022-12-20 12:00:00": 453,
"2022-12-20 13:00:00": 384,
"2022-12-20 14:00:00": 238,
"2022-12-20 15:00:00": 81,
"2022-12-20 15:44:00": 0
}
2条答案
按热度按时间lnvxswe21#
最简单的方法是反序列化到字典
但如果需要更多类型化数据,可以创建一个列表
lhcgjxsq2#
我对newtonsoft不太熟悉,看起来好像是newtonsoft has more features than the JsonSerializer,但是我想知道如何用“内置”的System.Text.Json.Serializer来完成上面的要求,也许其他人会觉得有用
第一件事我绊倒了是
"2022-12-19 08:14:00"
不能被开箱即用地解析,"2022-12-19T08:14:00"
之后,其是可解析的。GetWattsJson()
返回日期格式更改后的json对象。使用
Dictionary<DateTime, int>
是起点以便稍后将值复制到类型
Watt
中复制很容易
linqpad中的结果
转换日期
这段代码显示了如何改变日期格式