JObject——直接转化为已知的对象类型

时间:2022-10-21 19:28:47
  public class TMC
{
public TMC()
{
TagMatchConditions = new Dictionary<string, List<string>>();
DateRange = new Dictionary<string, List<Date>>();
}

public Dictionary<string, List<string>> TagMatchConditions { get; set; }
public Dictionary<string, List<Date>> DateRange { get; set; }
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
}


传送的参数是该实体的Json形式

传入之后需要解析参数,进行相应的操作

之前总是一步步的解析,获得单个对象的值。今天突然发现原来有这么简便的方式


    //获得整个对象,整个json可以被划分为 JObject、JArray、JProperty几种类型
var tokens = JObject.Parse(filterCondition);
//获得标签匹配的条件
var tagValues = JObject.Parse(tokens["TagMatchConditions"].ToString())
.ToObject<Dictionary<string, List<string>>>();
//获得日期范围过滤条件
var dateValues = JObject.Parse(tokens["DateRange"].ToString())
.ToObject<Dictionary<string, List<Infrastructure.Date>>>();

注:字典类型并不是数组类型,其中的每一项都是一个JObject类型,而不是JArray类型