Deserialize with Json.Net crashing on some fields
I am trying to deserialize Json to C # object using Json.Net.
C # class:
public class Evaluation
{
[DataMember(Name = "id")]
public int Id { get; set; }
[DataMember(Name = "avg")]
public string Average { get; set; }
[DataMember(Name = "median")]
public string Median { get; set; }
[DataMember(Name = "teacherID")]
public int TeacherId { get; set; }
[DataMember(Name = "evalType")]
public int EvaluationType { get; set; }
}
Unit Test:
[Test]
[TestCase()]
public void TestParsing()
{
string json = "{" +
"\"id\": 439476," +
"\"avg\": \"69\"," +
"\"median\": \"75\"," +
"\"teacherID\": 1," +
"\"evalType\": 1" +
"}";
Evaluation evaluation = JsonConvert.DeserializeObject<Evaluation>(json);
Assert.IsTrue(evaluation.Average.Equals("69"));
Assert.IsTrue(evaluation.EvaluationType == 1);
}
This is not the case because the evaluation. The mean is null and the score. The EvaluationType is 0. Other fields are processed correctly.
Why does it fail?
+3
source to share
1 answer
Setting the attribute DataContract
in the class declaration should fix the problem:
[DataContract]
public class Evaluation
{
[DataMember(Name = "id")]
public int Id { get; set; }
[DataMember(Name = "avg")]
public string Average { get; set; }
[DataMember(Name = "median")]
public string Median { get; set; }
[DataMember(Name = "teacherID")]
public int TeacherId { get; set; }
[DataMember(Name = "evalType")]
public int EvaluationType { get; set; }
}
+4
source to share