我有一個定義的C#對象,基於從第三方API獲取的非常複雜的JSON。這裏是一塊吧:使用JSON.NET有條件地將JSON字符串或數組屬性反序列化爲C#對象?
{"alarmSummary":"NONE"}
C#中的相應屬性是:
public string alarmSummary {get; set;}
而且我會得到這個通過使用來自JSON.NET我的典型JSONConvert轉換:
var alarms = JSONConvert.DeserializeObject<MyClass>(jsonString);
但是,API將以這種格式將報警以陣列的形式進行報警,而當沒有任何字符串時,API將以「無」的方式發出警報:
{"alarmSummary" : ["AHHH Something went wrong!!", "I'm on fire!!"]}
在C#這意味着它需要是:
public string[] alarmSummary {get; set;}
如果我可以,我只想有JSONConvert反序列化「NONE」串逼到一個條目的數組。有沒有一種方法來設置此屬性的條件,或者我將不得不採取整個複雜的JSON字符串,並將其轉換?
你會用什麼方法來反序列化? – Edin
@Edin我建議如果他有'alarmSummary'作爲POCO類的屬性並反序列化該類的實例(這是我用ServiceStack.Text JSON庫做的)。如果他直接反序列化爲變量,那麼你在回答中提出的建議會更好,另外它還會使用Json.Net庫的特定功能。 – kape123