簡體   English   中英

如何從 JSON 文本中獲取反序列化的 C# 對象的類型?

[英]How to get the type of deserialized C# object from JSON text?

我試圖在 JSON 文本(JSON 文本中的 $type)中獲取序列化 C# 對象的類型,而無需再次將 JSON 文本反序列化為對象。 你能建議我有哪些選擇嗎?

我正在使用 Newtonsoft 庫進行序列化和序列化。

提前致謝

我不使用 Newtonsoft 庫。 但是,假設 $type 位於文件的開頭或結尾,我可能會使用字符串函數(下面的偽代碼),這會非常快。

  • 查找 $type

  • i=找到下一個冒號

  • j=查找下一個逗號

  • 在 i 和 j 之間抓取令牌

  • 修剪那個令牌

  • 用令牌做一些有用的事情。 用反射制作一個類型?

聽起來怎么樣? 當您使用它時,您可以編寫一個擴展方法。 多次點擊 +1,我會考慮編寫代碼 ;-)

試試這個

 var jsonObj = JObject.Parse("your json string");
 var props = jsonObj.Properties();

 foreach (var prop in props)
 {
     Console.WriteLine(prop.Value.Type);
 }

我希望這對你有幫助!

使用 Newtonsoft 庫相當簡單。

JObject json = JObject.Parse(JsonText);
string type = json["$type"].ToString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM