【发布时间】:2016-03-22 22:00:09
【问题描述】:
当对象的子对象类型不同时,如何反序列化对象? 我从 Telegram Bot API 获得以下 JSON:
{
"ok":true,
"result":[
{
"update_id":126107325,
"message":{
"message_id":200,
"from":{
"id":someid,
"first_name":"somename"
},
"chat":{
"id":someid,
"title":"asdasdasdasd"
},
"date":1438327336,
"text":"\/lfdngdf"
}
}
]
}
其中“chat”表示“GroupChat”类型的对象。
当再次调用相同的方法时,可能会导致:
{
"ok":true,
"result":[
{
"update_id":126107326,
"message":{
"message_id":204,
"from":{
"id":1234567,
"first_name":"somename"
},
"chat":{
"id":1234567,
"first_name":"Paul"
},
"date":1438327788,
"text":"\/blaaa"
}
}
]
}
其中聊天代表一个对象哦类型“用户”。 我浏览了一些答案,但它们没有帮助,因为我不是直接反序列化“消息”而是“UpdatePacket”。
提前致谢!
【问题讨论】:
-
您可以匹配一个 JSON 模式来验证返回了哪种类型的消息,然后进行相应的反序列化。
标签: c# json telegram-bot