2017-02-10 3 views
-4

Я потратил некоторое время, пытаясь понять это, поэтому решил опубликовать его здесь - надеюсь, это сэкономит время кому-то еще.Как использовать строку Json из внешнего API? Json возвращается с экранированными или дополнительными символами.

Я создаю приложение ASP.NET Core Web API MVC, которое принимает запрос Get и делает вызов внешнего API (в данном случае это поиск изображений Bing). Когда вы возвращаете результат, это даст мне бегущую строку Json. Пример:

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

Вместо:

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

Затем я хотел передать его обратно к моему веб-клиент со всеми рода не-успехов.

Вскоре я опубликую, как я его решил.

Cheers!

ответ

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

Ура! :)

Смежные вопросы