从JsonResult获取数据

本文关键字:数据 获取 JsonResult | 更新日期: 2023-09-27 17:58:14

代码位于ASP.NET Core中。MVC控制器返回Json(someData)。我正在尝试检索单元测试中的数据。我能做的最好的事情就是拥有

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

然后比较字符串。但我更希望得到一个对象或数组,以便能够进行一些更具体的比较。有趣的是,在调试器下,我可以看到jsonResult.Value的类型是Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable<MyType>,甚至还有Results View警告不要扩展它,否则;如果我扩展它,我就能得到我想要的!在我的例子中,它是一个MyType对象的4元素数组。然而,如果我做了类似from i in jsonResult.Value select i的事情,我会得到一个错误

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

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

从JsonResult获取数据

尝试使用Cast方法

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

编辑:更新答案

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