我目前正在通過JSON與一個node.js服務器通信的c#應用程序。我正在使用Json.net進行反序列化。C#反序列化JSON到各種類型
我的問題是,JSON消息是各種類型的(不知道它是什麼,直到消息進來),我需要deserialise到正確的類型取決於它是哪種類型的消息。
有沒有一個優雅的方法呢?可能的(非理想的)解決方案包括某種'all encompasing'消息DTO類型,任何消息都可以被反序列化(不好);或某種類型的消息中的消息,其中消息類型標識符被反序列化,然後子消息被反序列化爲特定類型,但是我覺得必須有更好的方法。
我僅限於.Net 3.5,因此不能使用dynamic
關鍵字。
謝謝
檢查http://stackoverflow.com/a/ 19308474 – haim770
您可以將某種形式的元組從node.js發送到客戶端。第一個項目是json本身,第二個項目可能是需要反序列化的類的名稱。在客戶端,您可以使用反射從名稱或其他名稱中獲取類型。 –
@ haim770 - 謝謝!這對我來說很好(一個json.net解決方案)。不知道現在該怎麼處理這個問題。如果你想添加一個簡短的通用答案,我會很樂意接受它。 – UpTheCreek