C# API在代码中返回有效的JSON,但在浏览器中返回无效的JSON

C# API在代码中返回有效的JSON,但在浏览器中返回无效的JSON,c#,json,api,C#,Json,Api,我有一个非常简单的API方法,如下所示: public string Get(int id) { Doors door = (Doors)Repository<Doors>.Get(id); string d = JsonConvert.SerializeObject(door); return d; } "{\"DoorSys\":100000,\"DoorName\":\"Door 1 - Out\",\"DoorID\":\"Door # 01 (Ou

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

public string Get(int id)
{
    Doors door = (Doors)Repository<Doors>.Get(id);
    string d = JsonConvert.SerializeObject(door);
    return d;
}
"{\"DoorSys\":100000,\"DoorName\":\"Door 1 - Out\",\"DoorID\":\"Door # 01 (Out)\",\"LocationSys\":-1,\"StatusSys\":100001,\"OrganizationSys\":805408}"
当我在
d
上设置断点时,我得到以下结果:

{"DoorSys":100000,"DoorName":"Door 1 - Out","DoorID":"Door # 01 (Out)","LocationSys":-1,"StatusSys":100001,"OrganizationSys":805408}
那很好。但当它显示在浏览器中时,它看起来是这样的:

public string Get(int id)
{
    Doors door = (Doors)Repository<Doors>.Get(id);
    string d = JsonConvert.SerializeObject(door);
    return d;
}
"{\"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;
}
公共门获取(内部id)
{
Doors door=(Doors)Repository.Get(id);
回程门;
}

真管用

您正在双重序列化门对象。将Get方法声明为

public Doors Get(int id)

您正在双重序列化门对象。将Get方法声明为

public Doors Get(int id)

请注意,您的响应头不应该是JSON而不是“text/html”吗?您是否尝试将Get方法声明为
public Doors Get(int id)
?您正在双重序列化door对象,将其更改为“application/json”。@L.B有效!!把它作为一个答案,我会把它标记为SuchletMVC为您做序列化。没有必要自己做。旁注,您的响应头不应该是JSON而不是“text/html”吗?您是否尝试将Get方法声明为
public Doors Get(int id)
?您正在双重序列化door对象,将其更改为“application/json”。@L.B有效!!把它作为一个答案,我会把它标记为SuchletMVC为您做序列化。没有必要自己做。我不会说他在双重序列化它,它只序列化一次,然后以字符串形式返回序列化。@然后底层框架再次序列化该字符串。这就是转义字符串的原因我不会说他在双重序列化它,它只序列化一次,然后将序列化作为字符串返回。@然后底层框架再次序列化该字符串。这就是转义字符串的原因