Ich Deserialisieren ein Objekt mit diesem CodeDeserialisieren JSON produziert Standardklasse
PlayerData = JsonConvert.DeserializeObject<UserData>(response.Content);
Mein Userdata-Klasse ist als
folgtpublic class UserData : BindableBase
{
public string UID { get; set; }
public string UDID { get; set; }
public object liveID { get; set; }
public int timeLastSeen { get; set; }
public string country { get; set; }
public string username { get; set; }
public string session { get; set; }
public int serverTime { get; set; }
public int PremiumCurrency { get; set; }
public UserData()
{
}
}
Wenn es deserialisiert ich ein Objekt zurückgegeben, als ob ich gerade genannt habe new UserData()
, aber wenn ich die : BindableBase
aus der Klassendefinition entfernen, deserialisiert es korrekt. Ich vermute, das liegt daran, dass die Basisklasse einige Eigenschaften enthält, die nicht im JSON enthalten sind, aber ich möchte nur, dass diese ignoriert werden. Gibt es eine Einstellung dafür?
Die BindableBase Klasse ist wie folgt
[Windows.Foundation.Metadata.WebHostHidden]
[DataContract]
public abstract class BindableBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected bool SetProperty<T>(ref T storage, T value, [CallerMemberName] String propertyName = null)
{
if (object.Equals(storage, value)) return false;
storage = value;
this.OnPropertyChanged(propertyName);
return true;
}
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var eventHandler = this.PropertyChanged;
if (eventHandler != null)
{
eventHandler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Die JSON ist als
{
"UID": "4",
"UDID": "",
"liveID": null,
"timeLastSeen": 1392730436,
"country": "GB",
"username": "User4",
"PremiumCurrency": "20",
"session": "5c8583311732fa816e333dc5e6426d65",
"serverTime": 1392730437
}
Können Sie Ihren 'BindableBase' Klassencode angeben? Kann das Problem nicht reproduzieren. Verwenden Sie auch eine lase-Version von 'Json.Net' oder eine bestimmte? – Sergio
Bearbeitete Frage mit dem Basisklassencode. Es ist die neueste Version von JSON.net –