У меня есть такой код:
string json2 = vc.Request(model.uri + "?fields=uri,transcode.status", "GET");
var deserial = JsonConvert.DeserializeObject<Dictionary<string, object>>(json2);
var transcode = deserial["transcode"];
var serial = JsonConvert.SerializeObject(transcode);
var deserial2 = JsonConvert.DeserializeObject<Dictionary<string, object>>(serial);
var upstatus = deserial2["status"].ToString();
JSON, который я получаю с сервера:
{
"uri": "/videos/262240241",
"transcode": {
"status": "in_progress"
}
}
При запуске на VS2017 работает.
Но на VS2010 я получаю следующую ошибку:
Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип 'System.Collections.Generic.Dictionary`2 [System.String, System.Object]', поскольку для этого типа требуется объект JSON (например, {"name ":" value "}) для правильной десериализации. Чтобы исправить эту ошибку, либо измените JSON на объект JSON (например, {"name": "value"}), либо измените десериализованный тип на массив или тип, реализующий интерфейс коллекции (например, ICollection, IList), например List, который может десериализоваться из массива JSON. JsonArrayAttribute также можно добавить к типу, чтобы заставить его десериализоваться из массива JSON. Путь '', строка 1, позиция 1.
Я использую Newtonsoft.Json.
Любая идея?