我有,看起來像這是一個非常簡單的API方法:API返回瀏覽器的代碼有效的JSON,但無效JSON
public string Get(int id)
{
Doors door = (Doors)Repository<Doors>.Get(id);
string d = JsonConvert.SerializeObject(door);
return d;
}
有了這個在WebAPIConfig:
config.Formatters.JsonFormatter.SupportedMediaTypes
.Add(new MediaTypeHeaderValue("text/html"));
當我在d
上設置了一個斷點,我得到這個:
{"DoorSys":100000,"DoorName":"Door 1 - Out","DoorID":"Door # 01 (Out)","LocationSys":-1,"StatusSys":100001,"OrganizationSys":805408}
這一切都很好。但是,它在瀏覽器中顯示的時候,它看起來像這樣:
"{\"DoorSys\":100000,\"DoorName\":\"Door 1 - Out\",\"DoorID\":\"Door # 01 (Out)\",\"LocationSys\":-1,\"StatusSys\":100001,\"OrganizationSys\":805408}"
如果我把什麼返回瀏覽器成JSON格式,它當然不喜歡它。完全一樣。
什麼(如果有的話?)我做錯了嗎?
編輯:
基於由L.B答案,我這樣做,而不是:
public Doors Get(int id)
{
Doors door = (Doors)Repository<Doors>.Get(id);
return door;
}
這一工程!
請注意,您的響應標題不應該爲JSON而不是「text/html」嗎? – scunliffe
您是否嘗試將您的Get方法聲明爲'public Doors Get(int id)'?你正在雙重序列化* door *對象 –
@scunliffe - 也許?我在另一個線程上找到了「text/html」的答案,問題是「如何返回JSON而不是XML」。 –