在不知道类型的情况下反序列化Json

时间:2019-06-11 03:16:45

标签: c# .net-core

我正在使用websockets api,并且我有一种方法可以接收所有传入的响应。响应都是json。

我想反序列化对键入对象的json响应,但是我怎么知道它是 类型?

1)检查原始json中的关键字字符串

2)尝试反序列化每种类型,直到其中一种不为空

3)JsonConvert.DeserializeObject()转换为JObject,并以某种方式转换为我的最终类型

我不确定什么是最干净的解决方案,甚至如何解决。

1 个答案:

答案 0 :(得分:0)

如果您真的不知道要使用哪种类型,则可以选择使用dynamic类型。它将与Newtonsoft一起正常工作

dynamic theObject = JObject.Parse(rawJson);

然后,当您有这样的JSON响应时:

{
    "name": "Deep Thought",
    "answer": "42"
}

然后您可以访问如下属性:

dynamic hitchhiker = JObject.Parse(rawJson);
Console.WriteLine(hitchhiker.name);

这将输出以下内容:

  

深思熟虑