.net - 为什么Web Api使用 “$ref=”返回空的json结果?

标签 .net json asp.net-mvc-4 asp.net-web-api

在返回Web Api中的任何结果之前,我禁用了EF5中的延迟加载和代理创建。一切正常。但是,当我开始对其他实体进行Include()渴望获取时,一些JSON对象如下所示:

{
$ref: "14"
},
.. correct objects ..
{
$ref: "6"
},
..

结果列表中包含的"$ref"是什么?

最佳答案

它来自JSON.NET序列化器。它保留对象引用。看看 following blog post 。我猜您在对象图中有一些循环引用,而JSON.NET最好是在不崩溃的情况下不遗余力地序列化此EF结构(这是大多数JSON序列化程序将要做的事情)的最佳方法。这不是一个标准。

个人建议:请勿序列化您的EF实体。始终定义 View 模型,并让您的Web API方法返回仅包含您感兴趣的属性的 View 模型。

关于.net - 为什么Web Api使用 “$ref=”返回空的json结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14682211/

相关文章:

asp.net-mvc - 输入类型=Checkbox、@HTML.CheckBox 和@HTML.CheckBoxFor 的区别?

c# - 在 Visual Studio 2012 调试期间,CSS 未显示在 ASP.Net MVC4 上

.net - 将完整的 .NET Framework 与现有的 ASP.NET Core 项目结合使用

c# - 在关闭警告中访问 foreach 变量

java - Jersey 客户端解码 JSON 包含根元素错误

json - Scala 2.10,它对 JSON 库和案例类验证/创建的影响

c# - 我应该让我的私有(private)类方法静态化吗?

asp.net - 如何删除 CreateUserWizard 控件中的表标签

android - (Android Volley) JSONObject 无法转换为 JSONArray

javascript - 子行数据表 - 行数据值未定义