我有一个像SomeId这样的自定义ID的DTO。 get请求以这种格式返回返回JSON:
... "$id":"2","SomeId":1 ...
在ApiController操作返回JSON之前,我可以以某种方式将SomeId映射到$ Id吗?
答案 0 :(得分:6)
我猜你在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;
您可以在此处详细了解: