2016-05-01 12 views
5

Próbuję utworzyć obiekt .NET z JObject ale jestem coraz wszystkie właściwości obiektu jako domyślne (NULL dla łańcucha, 0 dla int etc.)Cofnięcie Json przy użyciu metody ToObject wyników we właściwościach domyślnych wartości

tworzę prosty Jobject:

var jsonObject = new JObject(); 
jsonObject.Add("type", "Fiat"); 
jsonObject.Add("model", 500); 
jsonObject.Add("color", "white"); 

Klasa samochód jest:

public class Car 
{ 
    string type {get;set;} 
    int model {get ;set;} 
    string color {get;set;}    
} 

deserializacji jest tutaj:

Car myCar = jsonObject.ToObject<Car>(); 

Ale wynik w czasie wykonywania jest domyślne wartości: Run time picture

Chciałbym wiedzieć, dlaczego tak się dzieje i jak należy to zrobić poprawnie,

Dzięki

Odpowiedz

5

Masz nie zdefiniowałem modyfikatora dostępu do twoich właściwości. Bez jawnego ustawienia modyfikatora dostępu (np. public protected internal private) właściwość będzie prywatna.

Newtonsoft.Json wymaga publicznego ustawiacza, aby ustawić wartość swojej nieruchomości.

Spróbuj:

public class Car 
{ 
    public string type { get; set; } 
    public int model { get; set; } 
    public string color { get; set; } 
} 

przypadku posiadania ustawiaczy publiczna nie jest rozwiązaniem dla. Rozważ inne opcje wymienione w this SO answer.

+0

Zmarnowałem 2 godziny na to ?! Wielkie dzięki! –