为了账号安全,请及时绑定邮箱和手机立即绑定

从 Web API 返回的 JSON 格式不正确

从 Web API 返回的 JSON 格式不正确

C#
UYOU 2021-12-05 17:09:32
我正在尝试为我正在构建的 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条经验 获得超2个赞

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

}


查看完整回答
反对 回复 2021-12-05
  • 1 回答
  • 0 关注
  • 335 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信