Я внедряю систему для отслеживания GPS, используя API веб-службы.
ОШИБКА:
Необработанное исключение типа 'Newtonsoft.Json.JsonSerializationException'произошла в Newtonsoft.Json.dll
Дополнительная информация: Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип 'TrackingRequest.Devices', поскольку для типа требуется объект JSON (например, {"name ":" value "}) для правильной десериализации.
Чтобы исправить эту ошибку, либо измените JSON на объект JSON (например, {" name ":" value "}), либо измените десериализованный тип на массивили тип, который реализует интерфейс коллекции (например, ICollection, IList), такой как List, который можно десериализовать из массива JSON.JsonArrayAttribute также можно добавить к типу, чтобы принудительно десериализовать его из массива JSON.
Это приложение для веб-форм в c # с HttpClient
с использованием json из Newtonsoft.
Мой код
using (HttpClient clientKey = new HttpClient())
{
clientKey.BaseAddress = new Uri("http://api.trackingdiary.com/");
clientKey.DefaultRequestHeaders.Add("Hive-Session", key);
clientKey.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage responseKey = clientKey.GetAsync("/v2/geo/devices/list").Result;
using (HttpContent contentkey = responseKey.Content)
{
Task<string> resultKey = contentkey.ReadAsStringAsync();
Devices obj = JsonConvert.DeserializeObject<Devices>(resultKey.Result);
Console.WriteLine();
}
}
Мой класс:
class position
{
[JsonProperty("lat")]
public int lat { get; set; }
[JsonProperty("lng")]
public int lng { get; set; }
[JsonProperty("hdop")]
public int hdop { get; set; }
[JsonProperty("fix")]
public bool fix { get; set; }
}
class Devices
{
[JsonProperty("id")]
public int id { get; set; }
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("date_contacted")]
public string date_contacted { get; set; }
[JsonProperty("startup")]
public string startup { get; set; }
[JsonProperty("position")]
public position position { get; set; }
}
}
Я хочу, чтобы объекты выполнялись в DataTable.
JSON EXAMPLE JSONПример