我有一个非常简单的API方法,如下所示:

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;
}


这样可行!

最佳答案

您正在对门对象进行两次序列化。将您的Get方法声明为

public Doors Get(int id)

09-25 17:20