Тема: Проблема при десериализации JSON полученного из SDK в Visual Studio
Добрый день!
Имеется проблема по получению отчетов.
В документации http://sdk.wialon.com/wiki/ru/local/rem … es/reports
в части "получение данных из таблиц"
прямо в их примере, на запрос
https://hst-api.wialon.com/wialon/ajax. … _rows&
params={
"tableIndex":0,
"indexFrom":0,
"indexTo":0
}&sid=<your_sid>
получается результат
[{
"n": 0,
"i1": 108,
"i2": 214,
"t1": 1357047418,
"t2": 1357056357,
"d": 3,
"c": ["1", "2013-01-01", {
"t": "17:36:58",
"y": 53.9097984,
"x": 27.4998528
}, {
"t": "Берута ул., Минск",
"y": 53.9097984,
"x": 27.4998528
}, {
"t": "20:05:57",
"y": 53.8847872,
"x": 27.5675072
}, {
"t": "Маяковского ул., Минск",
"y": 53.8847872,
"x": 27.5675072
}, "", "0:11:15", "0:00:00", "0.00 км", "0.00 км", "0 км\/ч", {
"t": "72 км\/ч",
"y": 53.9070656,
"x": 27.5216608
}, "3", "0 л", "0 л"]
}]
Этот результат содержит неименованные поля "", "0:11:15", "0:00:00", "0.00 км", "0.00 км", "0 км\/ч", которые десериализовать не получается.
Как Visual Studio, так и онлайн генераторы типа json2sharp генерируют класс
public class TableRepObject
{
public Class1[] Property1 { get; set; }
}
public class Class1
{
public int n { get; set; }
public int i1 { get; set; }
public int i2 { get; set; }
public int t1 { get; set; }
public int t2 { get; set; }
public int d { get; set; }
public object[] c { get; set; }
}
При попытке десериализовать полученный результат
TableRepObject tblRep = JsonConvert.DeserializeObject<TableRepObject>(PageText);
получаем исключение с текстом
{"Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Entity.TableRepObject' because the type requires a JSON object (e.g. {\"name\":\"value\"}) to deserialize correctly.\r\nTo fix this error either change the JSON to a JSON object (e.g. {\"name\":\"value\"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.\r\nPath '', line 1, position 1."}
Т.е. требуется, чтобы все поля были поименованы.
Что тут можно сделать?