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

从对 Odata 端点进行异步调用的 Web API 返回 JSON

从对 Odata 端点进行异步调用的 Web API 返回 JSON

C#
慕姐8265434 2021-12-05 16:16:19
我正在构建一个 Web API,它对 Odata 端点进行异步调用。odata 端点返回 JSON,我也尝试从 Web API 返回相同的 JSON。由于我正在异步调用 Odata 端点,因此我使用 Task 作为返回类型我的 API 方法,但我想将它们作为 JSON 返回,但我不确定如何做到这一点。下面是我的代码   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;目前它返回像<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"> {       "@odata.context":"https://science.com/odata/$metadata#EMPLOYEE","value":[       {         "Id":5000004,         "Name":"Account",         "Barcode":"EM1"       }]    } </string>我试图避免 JSON 响应周围的字符串标记。我们如何做到这一点
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

我希望 API 可以返回 JSON,这只是改变 Chayim 建议的 Content-Type 的问题。


但如果它只会返回 xml,你可以这样做:


...

string core_URL = BaseURL_Core+URL_instance;

var response = await client_Core.GetAsync(core_URL);

string xml = await response.Content.ReadAsStringAsync();

System.Xml.Linq.XDocument doc = System.Xml.Linq.XDocument.Parse(xml);

responsedata = doc.Root.Value;

...


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

添加回答

举报

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