我有一个带有自定义 ID 的 DTO,比如 SomeId。获取请求以这种格式返回 JSON:
... "$id":"2","SomeId":1 ...
我可以在 ApiController 操作返回 JSON 之前以某种方式将 SomeId 映射到 $Id 吗?
我有一个带有自定义 ID 的 DTO,比如 SomeId。获取请求以这种格式返回 JSON:
... "$id":"2","SomeId":1 ...
我可以在 ApiController 操作返回 JSON 之前以某种方式将 SomeId 映射到 $Id 吗?
我猜你在 ASP.NET Web API 中使用默认的 JSON 格式化程序(Json.NET),你看到"$id"
的实际上是用于保留句柄的引用,所以如果元素在某处重复它不会重复数据,它会只需将"$ref"
副本的属性设置"$id"
为原始的。
要禁用此功能,您可以将以下代码添加到Global.asax文件中的Application_Start方法中:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling =
Newtonsoft.Json.PreserveReferencesHandling.None;
您可以在此处阅读有关此内容的更多信息: