【发布时间】:2019-08-12 05:57:07
【问题描述】:
我刚刚获得了JSON.NET,到目前为止它很棒。
但是,我无法弄清楚在反序列化时如何确定序列化对象的type。
如何确定要转换的对象的类?
为了澄清我的问题,假设我想这样做
string json = <<some json i don't know>>
var data = JsonConvert.DeserializeObject(json);
if (data is Person)
{
//do something
}
else if (data is Order)
{
//do something else
}
Json.NET 是否支持这种功能?
【问题讨论】:
-
这也是我的第一个想法。但是,类型是
Newtonsoft.Json.Linq.JObject -
JSON 是一种纯格式,不会在序列化时保留元数据。您必须知道要反序列化的类型。
-
@HamletHakobyan,那我该如何区分不同的对象呢?当客户端向我的服务器发送一些东西时,我必须能够检测到它是什么
-
客户端如何向你的服务器发送数据?您必须有一些协议来确定客户端发送的内容。
-
如果 GetType() 返回 JObject 键的值只是另一个 json 对象。您需要递归到它并读取后续键。