2013-08-21 47 views
0

我有一个像SomeId自定义Id的DTO。 GET请求返回此格式返回JSON:

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

我可以以某种方式映射到SomeId $标识的ApiController动作返回JSON过吗?

+0

你是什么意思的映射?你的意思是替换值 - 用* SomeId *中的值替换* $ id *值? –

+0

将POCO映射到JSON ... => SomeId == $ id – cs0815

+0

如果您需要在从控制器返回POCO之前操作POCO,为什么不从控制器方法本身执行? – LordHits

回答

6

我猜你正在ASP.NET Web API中使用默认的JSON格式(Json.NET),你看到的"$id"实际上是一个参考,用于保存句柄,所以如果元素重复某个地方,它不会重复数据,它只会将重复的"$ref"属性设置为原始的"$id"

,你能做些什么来禁用,这是下面的代码添加到的Application_Start方法在的Global.asax文件

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter; 
json.SerializerSettings.PreserveReferencesHandling = 
    Newtonsoft.Json.PreserveReferencesHandling.None; 

你可以阅读更多关于此这里:

+0

谢谢你的工作。 – cs0815