C# 将 JSON 反序列化为各种类型

标签 c# json json.net deserialization json-deserialization

我目前正在开发一个通过 JSON 与 node.js 服务器通信的 c# 应用程序。我正在使用 Json.net进行反序列化。

我的问题是 JSON 消息有多种类型(在消息传入之前不知道是哪种类型),我需要根据消息的类型反序列化为正确的类型。

对此有优雅的方法吗? 我想到的可能(非理想)解决方案包括某种“包罗万象”的消息 DTO 类型,任何消息都可以反序列化为(不是好的);或某种“消息中的消息”,其中消息类型标识符被反序列化,然后子消息被反序列化为特定类型,但我觉得必须有更好的方法。

我仅限于 .Net 3.5,所以不能使用 dynamic 关键字。

谢谢

最佳答案

节点服务器必须在每个响应上发送 json 类型。另一种解决方案是在这种方式上使用动态类型:

JsonConvert.DeserializeObject<dynamic>(JSONtext)

关于C# 将 JSON 反序列化为各种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27837076/

相关文章:

c# - 使用 ADO.NET 传递表值参数

c# - 为什么 INotifyPropertyChanged 不起作用?

javascript - Ajax 调用循环,Ajax jQuery

php - 编码、序列化和编码

c# - 找不到 ParseStringConverter

c# - 如何处理 JSON 以从字段名称中删除句点?

c# - 使用 Entity Framework 自动编号

c# - Kendo MVC 在 Update 调用上触发 Create 方法

javascript - 使用 d3 增加节点链接图中的链接长度

c# - 使用 JSON 填充现有对象