我有一个基于第三方API获取的非常复杂的JSON文件定义的C#对象,以下是其中一部分:
{"alarmSummary":"NONE"}
在C#中对应的属性是:
public string alarmSummary {get; set;}
我通常会使用JSON.NET中的JSONConvert将其转换:
var alarms = JSONConvert.DeserializeObject<MyClass>(jsonString);
然而,API会将警报以数组形式呈现,并在没有任何警报时以字符串“NONE”呈现:
{"alarmSummary" : ["AHHH Something went wrong!!", "I'm on fire!!"]}
这意味着在C#中需要这样做:
public string[] alarmSummary {get; set;}
如果可以的话,我只想让JSONConvert将“NONE”字符串反序列化为一个仅包含一个条目的数组。有没有办法对此属性设置条件,或者我必须手动转换整个复杂的JSON字符串?
alarmSummary
属性并反序列化该类的实例(这是我使用ServiceStack.Text JSON库的方法),我建议他这样做。如果他直接反序列化到变量,则您在答案中提出的建议更好,而且还使用了Json.Net库的特定功能。 - nikib3ro