json.net中的未知类型



我刚刚掌握了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支持这种功能?

您可以使用dynamic类型

JsonConvert.DeserializeObject<dynamic>(JSONtext)

它可能会帮助您

Idictionary&Lt;字符串,jtoken&gt;jsondata = jobject.parse(yourjsonstring);   foreach(keyvaluepair&lt; string,jsondata中的jtoken&gt; element)    {           字符串Innerkey = element.key;            如果(element.value是jarray)             {                 //过程Jarray             }            否则if(element.value是企业)            {                 //过程验证            }   }

如果您控制序列化,则可以使用typenamehandling设置

var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All };
var toBeSerialized = settings; // use the settings as an example data to be serialized
var serialized = JsonConvert.SerializeObject(toBeSerialized, Formatting.Indented, settings);
var deserialized = JsonConvert.DeserializeObject(serialized, settings);
var deserializedType = deserialized.GetType().Name; // JsonSerializerSettings

对于仍在尝试执行此操作的任何人,我建议使用

JsonConvert.DeserializeObject<ExpandoObject>(JSONtext)

相关内容

  • 没有找到相关文章

最新更新