2013-08-21 40 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