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

cs0*_*815 0 asp.net-mvc-4 asp.net-web-api

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

... "$id":"2","SomeId":1 ...
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*num 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;
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多相关信息: