繁体   English   中英

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

[英]Deserialize Json without knowing type

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

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

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

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

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

我不确定什么是最干净的解决方案或如何解决这个问题。

一种选择是使用dynamic类型,如果你真的不知道期望什么类型。 这对Newtonsoft来说效果很好

dynamic theObject = JObject.Parse(rawJson);

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

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

然后你可以到达这样的属性:

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

这将输出以下内容:

深层思想

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM