【问题标题】:How to consume Json string from external API? Json returns with escaped or extra characters.如何从外部 API 使用 Json 字符串? Json 以转义字符或额外字符返回。
【发布时间】:2017-06-28 06:18:59
【问题描述】:

我花了一些时间试图弄清楚这一点,所以我决定在这里发布 - 希望它可以节省一些时间给其他人。

我正在构建一个 ASP.Net Core Web API MVC 应用程序,该应用程序接受 Get 请求并调用外部 API(在本例中为 Bing Image Search)。返回结果时,它会给我一个转义的 Json 字符串。示例:

"{\"_type\": \"Images\", \"instrumentation\": {\"pageLoadPingUrl\": \"https:...} 

代替:

{
 "_type": "Images",
 "instrumentation": {
 "pageLoadPingUrl": "https:....
}

然后,我想将它传回给我的网络客户端,但没有成功。

我将很快发布我是如何解决它的。

干杯!

【问题讨论】:

    标签: c# asp.net json asp.net-web-api asp.net-core


    【解决方案1】:

    所以问题是我试图以错误的方式处理响应内容。我所要做的就是使用 JsonConvert 库。

    我的完整 API 方法如下所示:

     [HttpGet("{id}")]
        public async Task<IActionResult> Get(string id)
        {
             using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "Enter your key here");
    
                    var uri = new Uri("uri to external API here + any parameters");
    
                    var response = await client.GetStringAsync(uri);
                    var jsonResponse =  JsonConvert.DeserializeObject(response); 
                    return Ok(jsonResponse); 
                }
        }
    

    干杯! :)

    【讨论】:

      猜你喜欢
      • 2018-01-12
      • 2016-05-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多