将web api中的$ Id映射到自定义ID

时间:2013-08-21 10:44:44

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

我有一个像SomeId这样的自定义ID的DTO。 get请求以这种格式返回返回JSON:

... "$id":"2","SomeId":1 ...

在ApiController操作返回JSON之前,我可以以某种方式将SomeId映射到$ Id吗?

1 个答案:

答案 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;

您可以在此处详细了解: