获取复杂JsonResult.Data

时间:2017-03-19 12:26:27

标签: asp.net json asp.net-mvc

我的函数返回JsonResult:

var obj = new { pc = peopleCount, fp = finalPrice, os = osoba, dt = date, zd = zadatek };
return new JsonResult { Data = obj, JsonRequestBehavior = JsonRequestBehavior.AllowGet };

我希望从JsonResult获取所有值。如果只有一个值,这很简单,但在这里我有一个具有5个属性的对象。怎么弄他们?现在我有:

var getPrice = (JsonResult)GetBundleData(item.EventID);
var price = getPrice.Data;

我可以看到price中存在这些值

enter image description here

但我只能使用点和属性名称来获取它们。只有Equals()GetHashCode()GetType()ToString()

1 个答案:

答案 0 :(得分:0)

由于编译器在运行时不知道price的类型,我们可以使用dynamic来实现此目的。

var getPrice = (JsonResult)GetBundleData(item.EventID);
dynamic price = getPrice.Data;

并使用

之类的值
DateTime date = Convert.ToDateTime(price.dt);
  

请注意,如果您确定对象的属性,请使用dynamic   将在运行时抛出异常

假设我使用price.example它会build就好了,没有任何错误但是当调用此函数时它会抛出exception因为它找不到example属性在price object