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

时间:2015-01-08 09:46:42

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

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

我的问题是JSON消息是各种类型的(在消息进入之前它不知道哪个),我需要根据它的消息类型反序列化到正确的类型。

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

我仅限于.Net 3.5,因此无法使用dynamic关键字。

谢谢

1 个答案:

答案 0 :(得分:0)

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

JsonConvert.DeserializeObject<dynamic>(JSONtext)