从JsonResult获取数据

时间:2016-07-23 03:30:02

标签: c# json asp.net-mvc unit-testing asp.net-core-mvc

代码在ASP.NET Core中。 MVC控制器返回Json(someData)。 我试图在单元测试中检索数据。我能做的最好就是

string data = JsonConvert.SerializeObject(jsonResult.Value);

然后比较字符串。但我更希望得到一个对象或数组,以便能够进行更具体的比较。有趣的是,在调试器下我可以看到jsonResult.Value的类型为Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable<MyType>,甚至还有结果视图警告不要扩展它或者其他;如果我扩展它,我得到我想要的!在我的例子中,它是一个4元素的MyType对象数组。但是,如果我执行from i in jsonResult.Value select i之类的操作,我会收到错误

Could not find an implementation of the query pattern for source type 'object'. 
'Select' not found

我希望有一种比比较JSON字符串更好的方法!

1 个答案:

答案 0 :(得分:1)

尝试使用Cast方法

(from i in jsonResult.Value.Cast<MyType>() select i)

修改:更新回答

 from i in ((IQueryable< MyType >)js.Value) select i