I use the latest version (6.0.6) of Json.net to serialize an object, and in my opinion, the result is not correct.
The result of the c# example below is this :
"Key":"AAA","No":"BBB","Project_No":"CCC","Resource_No":"DDD","Resource_Group_No":"EEE","Stadium_Code":"FFF","Entry_NoSpecified":false,"Line_NoSpecified":false,"Execution_DateSpecified":false,"HoursSpecified":false,"ExecutedSpecified":false,"FixedSpecified":false,"ConfirmedSpecified":false,"Begin_TimeSpecified":false,"Updated_TimeSpecified":false As you can see, all non string properties are not serialized, eg Entry_No, Line_No, Hours and the dates
Is this a bug in Json.Net?
code to reproduce problem,
using System; using Newtonsoft.Json; namespace JSONNET { class Program { static void Main(string[] args) { var dto = new ProjectPlanningEntryDto() { Key = "AAA", No = "BBB", Entry_No = 123, Project_No = "CCC", Line_No = 456, Resource_No = "DDD", Resource_Group_No = "EEE", Execution_Date = DateTime.Now, Hours = 4, Begin_Time = DateTime.Now, Updated_Time = DateTime.Now, Stadium_Code = "FFF" }; var json = JsonConvert.SerializeObject(dto); Console.WriteLine(json); Console.ReadLine(); } } public class ProjectPlanningEntryDto { public string Key { get; set; } public string No { get; set; } public int Entry_No { get; set; } public string Project_No { get; set; } public int Line_No { get; set; } public string Resource_No { get; set; } public string Resource_Group_No { get; set; } public DateTime Execution_Date { get; set; } public decimal Hours { get; set; } public bool Executed { get; set; } public bool Fixed { get; set; } public bool Confirmed { get; set; } public DateTime Begin_Time { get; set; } public DateTime Updated_Time { get; set; } public string Stadium_Code { get; set; } public bool Entry_NoSpecified { get; set; } public bool Line_NoSpecified { get; set; } public bool Execution_DateSpecified { get; set; } public bool HoursSpecified { get; set; } public bool ExecutedSpecified { get; set; } public bool FixedSpecified { get; set; } public bool ConfirmedSpecified { get; set; } public bool Begin_TimeSpecified { get; set; } public bool Updated_TimeSpecified { get; set; } } }