2016-07-18 3 views
0
public class RootObject 
{ 
    public List<Result> results { get; set; } 
    public int result_index { get; set; } 
} 

...C# Присвоить JSON DynamicObject к классу

private void ReadJson() 
{ 
    string JsonString = File.ReadAllText(MyJsonFile); 
    DynamicObject jObject = System.Web.Helpers.Json.Decode(JsonString); 
    RootObject RO = (RootObject)jObject; 
    ... 
} 

Линия:

RootObject RO = (RootObject)jObject; 

не является правильным. Как можно назначить DynamicObject для моего класса?

+0

Вы должны десериализовать его до нужного типа, используя ['System.Web.Helpers.Json.Decode (JsonString)'] (https://msdn.microsoft.com/en-us/library/gg547931 (v = vs.111) .aspx). – dbc

ответ

1

Вы не можете назначить DynamicObject переменной типа RootObject, поскольку типы не являются assignable. Вместо этого, вы должны десериализации вашего JSON как RootObject начать с использованием Json.Decode<T>:

var RO = System.Web.Helpers.Json.Decode<RootObject>(JsonString); 

Смотрите также How can I parse JSON with C#? и How to Convert JSON object to Custom C# object? больше примеров того, как десериализацию к определенному типу.

Смежные вопросы