我在SO和谷歌上搜索过类似的问题,但找不到我要搜索的确切内容。
我正在开发一个应用程序,它查询一个API,返回以下结果:
{
"Ticket": {
"1": {
"DisplayName": "Ticket ID",
"Value": 117
},
"2": {
"DisplayName": "Last Modified",
"Value": "2022-10-05T18:09:32.1070000Z"
},
"3": {
"DisplayName": "Last User",
"Value": "SYSTEMACCOUNT"
},
"4": {
"DisplayName": "Seq_Group",
"Value": 1
},
...
}
}
我想把它反序列化为一个对象,如下所示:
public class Ticket
{
public property int TicketID {get; set;}
public property DateTime LastModified {get; set;}
public property string LastUser {get; set;}
public property int Seq_Group {get; set;}
}
(为了简洁起见,这里还隐藏了几个属性)
你能给我指出如何以最佳方式进行Map的方向吗?
我知道我可以将它反序列化为一个字典,然后用几个if和elses迭代字典,但我认为一定有更聪明的方法来解决这个问题。
谢谢!
2条答案
按热度按时间h43kikqp1#
你只需要一行代码
把你的课改好
a8jjtwal2#
您可以使用
JsonConstructorAttribute
和 * System.Reflection * 进行属性Map。1.使用
[DisplayName]
属性定义应从JSONMap哪个属性名。1.从
[DisplayName]
属性(如果应用)或其默认属性名检索属性名的扩展方法。1.通过应用
[JsonConstructor]
属性在构造函数中实现转换逻辑。Demo @ .NET Fiddle