I am trying to deserialize from json to List<struct>, but my object is always null. The data types in the original JSON seem correct, and my code does not cause any errors, so I am completely fixated on why it does not work.
The class I'm deserting into:
public class SystemStatusRules
{
public struct EmailItem
{
public int EmailSubject_Id;
public bool IsSubject;
public string Email_String;
public int StatusCode;
}
public List<EmailItem> EmailItems {get; set;}
}
My JSON:
{"EmailItems":[
{"EmailSubject_Id":16,"IsSubject":true,"Email_String":"Cube Build Successful","StatusCode":0},
{"EmailSubject_Id":17,"IsSubject":true,"Email_String":"Cube Build Failure","StatusCode":0}
]}
and finally my deserialization code:
[HttpPost]
public bool SetAllStatusRules(string ruleList )
{
SystemStatusRules subjectRules =
JsonConvert.DeserializeObject<SystemStatusRules>(ruleList);
}
Just in case, if you need it, my code for serialization:
objArray.push({ EmailSubject_Id: SubjectId, IsSubject: IsSubject,
Email_String: EmailSubject, StatusCode: status });
objArray = { EmailItems: objArray };
var rulesJSON = JSON.stringify(objArray);
$.ajax({
url: "Management/SetAllStatusRules",
type: 'POST',
data: 'ruleList='+rulesJSON,
success: function (result) {
MyResultFunction(result);
}
});
Edit:
This is something to do with me, throwing at the object. The following code has a subjectRules variable that is correctly populated. However, ssr is null.
object subjectRules = JsonConvert.DeserializeObject<SystemStatusRules>(StatusRules);
SystemStatusRules ssr = (SystemStatusRules)subjectRules;
I don’t know what’s wrong, but deserializing in var allows me to use the data object as a workaround.