我将使用Json.Net。这个想法是: “声明position
为aList<string>
,如果json中的值是一个字符串,则将其转换为列表”
反序列化的代码
var api = JsonConvert.DeserializeObject<SportsAPI>(json);
Json转换器
public class StringConverter : JsonConverter{ public override bool CanConvert(Type objectType) { throw new NotImplementedException(); } public override object ReadJson(Newtonsoft.Json.JsonReader reader, Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { if(reader.ValueType==typeof(string)) { return new List<string>() { (string)reader.Value }; } return serializer.Deserialize<List<string>>(reader); } public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { throw new NotImplementedException(); }}样本杰森
{ "player": [ { "eligible_positions": { "position": "QB" } }, { "eligible_positions": { "position": [ "WR", "W/R/T" ] } } ]}类(简化版)
public class EligiblePositions{ [JsonConverter(typeof(StringConverter))] // <-- See This public List<string> position { get; set; }}public class Player{ public EligiblePositions eligible_positions { get; set; }}public class SportsAPI{ public List<Player> player { get; set; }}

![如何处理同时返回字符串和字符串数组的json?[重复] 如何处理同时返回字符串和字符串数组的json?[重复]](http://www.mshxw.com/aiimages/31/442721.png)
