Вы, вероятно, не хотите просто объявлять route_list как тип object
.У него нет свойства .test, поэтому вы действительно не получите хороший объект обратно.Это одно из тех мест, где вам лучше определить класс или структуру, либо использовать ключевое слово dynamic.
Если вы действительно хотите, чтобы этот код работал так, как есть, вам понадобитсязнать, что объект, возвращаемый DeserializeObject, является общим словарем строки object.Вот код, который делает это следующим образом:
var json_serializer = new JavaScriptSerializer();
var routes_list = (IDictionary<string, object>)json_serializer.DeserializeObject("{ \"test\":\"some data\" }");
Console.WriteLine(routes_list["test"]);
Если вы хотите использовать ключевое слово dynamic, , вы можете прочитать, как здесь .
Если вы объявите классили структура, вы можете вызвать Deserialize вместо DeserializeObject следующим образом:
class MyProgram {
struct MyObj {
public string test { get; set; }
}
static void Main(string[] args) {
var json_serializer = new JavaScriptSerializer();
MyObj routes_list = json_serializer.Deserialize<MyObj>("{ \"test\":\"some data\" }");
Console.WriteLine(routes_list.test);
Console.WriteLine("Done...");
Console.ReadKey(true);
}
}