我正在尝试为我正在构建的 Web API 返回一个 JSON。API 返回带有\斜线的 JSON,这使我的其他应用程序难以使用此 API。 " {\"@odata.context\":\"https://science.com/odata/$metadata#EMPLOYEE\",\"value\":[{\"Id\":5000004,\"Name\":\"Account\"}]}"但我期待这样的回应{"@odata.context": "https://science.com/odata/$metadata#EMPLOYEE","value": [ { "Id": 5000004, "Name": "Account" }]}下面是我的 Web API 的代码public async Task<string> GetEmployee(string instance){ ..... EmployeeDTO.RootObject returnObj = new EmployeeDTO.RootObject(); var responsedata = ""; try { using (var client_Core = new HttpClient()) { .... string core_URL = BaseURL_Core+URL_instance; var response = client_Core.GetAsync(core_URL).Result; responsedata = await response.Content.ReadAsStringAsync(); } } catch (Exception ex) { throw ex; } return responsedata;}我还在 WebAPIConfig 文件中添加了内容类型,如下所示var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);但我仍然得到带斜线的 JSON
1 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
responsedata = await response.Content.ReadAsStringAsync();
上面的代码返回字符串,您返回相同的响应。结果,它不是您期望的格式良好的 JSON。
如果要返回正确的 JSON,则需要在返回之前将字符串转换为 JSON。
public async Task<Data> GetEmployee(string instance)
{
string responsedata = " {\"@odata.context\":\"https://science.com/odata/$metadata#EMPLOYEE\",\"value\":[{\"Id\":5000004,\"Name\":\"Account\"}]}";
return JsonConvert.DeserializeObject<Data>(responsedata);
}
public class Data
{
[JsonProperty("@odata.context")]
public string ODataContext { get; set; }
public Value[] Value { get; set; }
}
public class Value
{
public int Id { get; set; }
public string Name { get; set; }
}
- 1 回答
- 0 关注
- 380 浏览
添加回答
举报
0/150
提交
取消