如何从外部API中使用Json字符串? Json返回转义字符或额外字符。

时间:2017-02-10 01:59:03

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

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

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

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

而不是:

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

然后,我希望将其传递回我的网络客户端,并取得各种成功。

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

干杯!

1 个答案:

答案 0 :(得分:-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); 
            }
    }

干杯! :)