Я пытаюсь потреблять остальное API, но я получаю следующую ошибку:Ошибка потребляя остальные API в .net
Exception Details: Newtonsoft.Json.JsonException: Unexpected JSON token while reading DataTable: StartObject
также, если изменение конечной точки я получаю: System.OutOfMemoryException: Исключение типа «System.OutOfMemoryException» был выброшен
, который указывает на эту строку кода:
var table = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Data.DataTable>(data);
не совсем уверен, как это исправить? Любой человек может определить, что ошибка или как это исправить ...
спасибо ..
Мой контроллер является:
public async System.Threading.Tasks.Task<ActionResult> About()
{
string url = "https://restcountries.eu/rest/v1/region/africa";
using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient())
{
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
System.Net.Http.HttpResponseMessage response = await client.GetAsync(url);
if (response.IsSuccessStatusCode)
{
var data = await response.Content.ReadAsStringAsync();
var table = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Data.DataTable>(data);
System.Web.UI.WebControls.GridView gView = new System.Web.UI.WebControls.GridView();
gView.DataSource = table;
gView.DataBind();
using (System.IO.StringWriter sw = new System.IO.StringWriter())
{
using (System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw))
{
gView.RenderControl(htw);
ViewBag.ReturnedData = sw.ToString();
}
}
}
}
return View();
Как выглядит ваш json ('data')? – Liam
Достаточно долго вставлять здесь комментарии, но если вы перейдете на URL-адрес, вы можете увидеть его –
Почему десериализуйте его в виде данных? То, что JSON не похоже на то, что было бы похоже на datatable. – Amy