Deserialize a JSON in C# mit JSON.net (Newtonsoft)C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Deserialize a JSON in C# mit JSON.net (Newtonsoft)

Post by Anonymous »

Ich verwende newtonsoft.json (v6.0.0.0) und versuche, einen JSON in eine Aufzählung zu deserialisieren. Dies: < /p>

Code: Select all

[JsonObject]
public class MyModel
{
/// 
/// Gets or sets the username
/// 
[Display(Name = @"UserName")]
[JsonProperty(PropertyName = "userName", Required = Required.Always)]
public string UserName { get; set; }

/* .
. REST OF THE MODEL
.
. */

/// 
/// Gets or sets the enum model.
/// 
[Display(Name = @"EnumModel")]
[JsonProperty(PropertyName = "enummodel", Required = Required.Always)]
public MyEnumModel EnumModel { get; set; }
}
< /code>
Myenummodel ist ein Enum mit diesen Werten: < /p>
[JsonConverter(typeof(StringEnumConverter))]
public enum MyEnumModel
{
[EnumMember(Value = "My Value 1")]
MyValueOne,

[EnumMember(Value = "My Value 2")]
MyValueTwo,

[EnumMember(Value = "My Value 3")]
MyValueThree
}
Wenn ich diesen Enum serialisiere, erhalte ich den korrekten Wert, der durch das Attribut definiert ist . Im Ergebnis des Anrufs habe ich also einen JSON mit dem Wert "My Value 1" oder "My Value 2" oder "My Value 3".

Code: Select all

"The value 'My Value 1' is not valid for EnumModel."
Es scheint nicht das Attribut für die Deserialisierung zu verwenden, da ich den Wert "myValueOne" sende. Wie das Attribut [enummember ()] wirklich funktioniert, wenn ich mich deserialisieren kann?
Vielen Dank für die Hilfe!{
"userName":"[email protected]",
"enummodel":"My Value 1"
}
< /code>
Bearbeiten 2: Modellvalidierung < /h2>
Entschuldigung, aber ich habe vergessen, eine wichtige Sache zu erwähnen. Ich verwende in meinem Controller eine Modellstate -Validierung: < /p>
if (!this.ModelState.IsValid)
{
return this.BadRequest(this.ModelState);
}
< /code>
Ich denke, der JSON ist korrekt mit den Attributen Deserialize mit den Attributen deserialisiert, aber die Validierung ist fehlgeschlagen, da der Validator das Enummember nicht verwendet, um mein Modell zu validieren? Ist es richtig?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post