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

我正在尝试为我正在构建的 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


UYOU
浏览 389回答 1
1回答

一只名叫tom的猫

responsedata = await response.Content.ReadAsStringAsync();上面的代码返回字符串,您返回相同的响应。结果,它不是您期望的格式良好的 JSON。如果要返回正确的 JSON,则需要在返回之前将字符串转换为 JSON。public async Task<Data> GetEmployee(string instance){&nbsp; &nbsp; string responsedata = "&nbsp; &nbsp;{\"@odata.context\":\"https://science.com/odata/$metadata#EMPLOYEE\",\"value\":[{\"Id\":5000004,\"Name\":\"Account\"}]}";&nbsp; &nbsp; return JsonConvert.DeserializeObject<Data>(responsedata);}public class Data{&nbsp; &nbsp; [JsonProperty("@odata.context")]&nbsp; &nbsp; public string ODataContext { get; set; }&nbsp; &nbsp; public Value[] Value { get; set; }}public class Value{&nbsp; &nbsp; public int Id { get; set; }&nbsp; &nbsp; public string Name { get; set; }}
打开App,查看更多内容
随时随地看视频慕课网APP